我正在尝试使用 barrels 和 tsconfigs 的 paths
选项导入一些服务,但我无法使 Angular 和 VSCode 协同工作。
如果一个正常工作,而另一个不行,反之亦然......
我的情况似乎很简单:
src/app/services
中有一个服务,在 index.ts 中进行了导出- 我的
src/tsconfig.app.json
只是这样的:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [],
"baseUrl": ".",
"paths": {
"services": ["app/services"]
}
},
"exclude": [
"test.ts",
"**/*.spec.ts"
],
}
我的Angular应用编译没有问题,但每次尝试从'services'
导入服务时,VSCode都会给我报错:[ts] Cannot find module 'services'.
为什么?
我使用的是TypeScript 3.1.6,在VSCode设置中我有 "typescript.tsdk": "C:/Users/myuser/AppData/Roaming/npm/node_modules/typescript/lib"
(我也尝试过保留默认设置,但没有改变)
编辑:
如果我在./tsconfig.json
中指定从src
开始的paths
,那么VSCode就不再报错了,但Angular不行。
如果我在tsconfig.json
和src/tsconfig.app.json
中都指定了paths
,那么VSCode和Angular都能工作,但这似乎是一个太愚蠢的解决方法...