vue使用ts后,引入ts文件,vetur报错Cannot find module '@/api/auth/index'

企业微信截图_2a23fc54-570e-4de8-8385-7809703f0ea1.png
如图所示,如果将alais的@换成'../../‘,就不会报错了

阅读 21.9k
5 个回答

需要满足两点:
1、项目在工作区根目录(就是把项目文件夹拖进vscode后的效果)
2、项目排在第一位(不在第一位可以鼠标拖动项目移到第一位)

image

把你的项目放到vscode工作区间的根目录,
在vscode中添加插件:Path Intellisense,然后点击插件的设置按钮,选择扩展设置,选择在settings.json中编辑:

"path-intellisense.mappings": {
    "@": "${workspaceRoot}/src",
}

保存后重启vscode就可以读取到模块和点击跳转了。
注意:所有的别名都要在Path Intellisense插件和tsconfig.json中配置,配置完重启编辑器

我也遇到了这个问题,我的 tsconfig 里有 paths 这块的别名映射,但是项目里使用别名引用的时候还是提示找不到这个模块,但其他同事那就没这个问题。

然后我刚试了一下在vscode里新打开一个以当前项目根目录为顶级目录的窗口,发现 Vetur 的警告提示已经没了,原来是以当前项目的上级目录为根目录,可能 Vetur 不知道当前哪一层文件夹才是真正的根目录。Vetur 可能有配置解决这个问题,但是现在没空整了,有找到解决办法的朋友可以告诉我一下哈

楼主是用了 Monorepo 吗,如果是单项目的话,vetur 会读到项目根目录的 tsconfig 文件的别名设置,不会有此问题。

如果是 Monorepo 的话,建议在项目根目录加一个配置文件 vetur.config.js,里面 project 字段可以设置项目路径。见 官方描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏