同学你用了 @/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)