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

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

阅读 21.3k
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
子站问答
访问
宣传栏