请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

插入代码

1回答

keviny79 2022-10-02 20:51:33

同学你用了 @/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 回复 有任何疑惑可以回复我~
  • 提问者 慕斯粉饼 #1
    我按照这几步还是不行
    回复 有任何疑惑可以回复我~ 2022-10-02 21:18:10
  • keviny79 回复 提问者 慕斯粉饼 #2
    1 看下第2步这里是否包含了你要导出的包 ? 没有就加进去
     "_moduleAliases": {
    
        "@/common": "src/common", 
    
        "@/controller":"src/controller",
    
        "@/modules":"src/modules"
    
       .....这里添加你自己要用别名引入的包。。。。。。。。
      },
    
    3.如果你一切都配置好了,你运行看看错误是不是其他错误了?;这个我在工作中用的,没有任何问题!
    4.【注意:如果你代码中不用@别名,就不要加上面4步】
    回复 有任何疑惑可以回复我~ 2022-10-02 21:24:09
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号