报错

来源:5-9 ORM框架:Sequelize 方案1添加用户-2

慕斯粉饼

2022-10-02

图片描述
老师为什么我按照这节课写完后.启动项目就报错了,代码和视频中的一样,

写回答

1回答

keviny79

2022-10-02

同学你用了 @/dao , 错误抛出 找不到 @/dao ,但5-9 视频里 没有用别名 @,如果你加了别名引发的错误

这个错误 是因为  tsconfig.json配置 

    "baseUrl": ".",

    "paths": {

      "@/*": ["src/*"]

    },

这一步只能保证编译通过,ts 无法在运行后识别@别名。

要想在运行后能识别 @,可以用webpack,但因此用webpack很重,很麻烦,可以参考下面步骤【当然也可以先不用 @ 别名,就是路径写起来会稍微麻烦点】


1.第一步:tsconfig.json配置

    "baseUrl": ".",

    "paths": {

      "@/*": ["src/*"]

    },

这一步只能保证编译通过,ts 无法在运行后识别别名


2.第二步:在 package.json 中配置希望设置别名的路径【因为设置@/*不稳定】

  "_moduleAliases": {

    "@/common": "src/common",

    "@/controller":"src/controller",

    "@/modules":"src/modules"

  },


3.第三步:安装依赖

    "@types/module-alias": "^2.0.1",

    "module-alias": "^2.2.2",


4.第四步:

require('module-alias/register') // 固定引入注册包,不可少

import moduleAlias from 'module-alias' // 引入别名依赖

import { Context } from 'koa'

import Koa from 'koa'

import allRouterLoader from '@/common/AllCtrlRouterLoader'


// 加载别名包

moduleAlias.addAliases({ '@common': __dirname + '/common', '@controller': __dirname + '/controller', '@modules': __dirname + '/modules' })


const app = new Koa()

allRouterLoader.init(app)


0
2
keviny79
回复
慕斯粉饼
1 看下第2步这里是否包含了你要导出的包 ? 没有就加进去 "_moduleAliases": { "@/common": "src/common", "@/controller":"src/controller", "@/modules":"src/modules" .....这里添加你自己要用别名引入的包。。。。。。。。 }, 3.如果你一切都配置好了,你运行看看错误是不是其他错误了?;这个我在工作中用的,没有任何问题! 4.【注意:如果你代码中不用@别名,就不要加上面4步】
2022-10-02
共2条回复

前端高手养成计划-从前端到后端,全栈开发大型项目

从纯前端到“真正懂后端的前端”

215 学习 · 134 问题

查看课程