ts里有些路径要再tsconfig.json设置paths有些不用

import 'util/test';
import 'const/test';

如上,const路径找不到,我在tsconfig.json设置了就好了,

paths: {
  "const/*": ["src/component/const/*"]
}

理论上util也要写的 ,但项目却没报错,为什么???

项目结构

-project
--src
---component
----const
-----test.js
----main.ts (import 'util/test')
----app.vue (import ** from 'const/test')
---util
----test.js
--tsconfig.json

alias配置


alias: {
    'util': path.resolve(__dirname, 'src/util'),
    'const': path.resolve(__dirname, 'src/component/const')
}

tsconfig配置

baseUrl: './',
...
path: {
    "const/*": ["src/component/const/*"]
}
阅读 11.7k
1 个回答

tsconfig 中的 moduleResolution 默认值是 classic,这个规则下对于非相对路径的引用会基于当前文件进行定位。如果设置了 baseUrl 与 paths 也配置了这个非相对路径,那么会优先使用这个路径。
util 与引用它的 main.ts 同级,并且 tsconfig 里没有配置 baseUrl 与 paths,所以 import 'util/test' 相当于 import './util/test'
const 与引用它的文件不在同一级,所以需要配置才能正确。

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