Angular 6 / 在 tsconfig.lib.json 中声明库的路径
Angular 6 / declare path for library in tsconfig.lib.json
我正在尝试为 Angular 6
库配置路径(我已成功为之前的 Angular 项目配置路径)
tsconfig.json
文件中我以前的应用程序的工作原理如下:
"compilerOptions": {
[...]
"baseUrl": "src",
"paths": {
"@class/*": [ "app/class/*" ],
"@services/*": [ "app/services/*" ],
"@views/*": [ "app/views/*" ]
}
}
然后像这样使用它:
Import { Item } form '@class/item';
在我的新应用程序中,我在 tsconfig.**lib**.json
文件中以相同的方式尝试:
"compilerOptions": {
[...]
"baseUrl": "src",
"paths": {
"@class/*": [ "lib/class/*" ],
"@services/*": [ "lib/services/*" ],
"@views/*": [ "lib/views/*" ]
}
}
我试过像这样在我的库的组件中导入 class,但它不起作用(VSCode 找不到文件):
Import { Item } form '@class/item';
请注意,主项目中的 import
语句正在运行:
Import { Item } from 'myLibrary';
知道我做的不好吗?
感谢您的帮助。
这是我上面的评论,如果你看到这是一个正确的答案。
Angular会使用tsconfig.json
文件,在**architect --> build --> options --> tsconfig**
中的angular.json
文件中配置。而 VS Code
使用位于工作区底部的 tsconfig.json
文件。您需要在两个配置中添加路径以使它们都能正常工作,或者更改项目以使用 angular.json
文件中的基础 tsconfig.json
文件。
tsconfig.json
文件有一个 属性 扩展,它将以另一个文件为基础并覆盖 tsconfig.lib.json
文件中声明的所有内容。因此,如果您在 tsconfig.lib.json
文件中声明了路径,则 tsconfig.json
文件中不再需要这些路径。
编辑 2019 年 7 月 29 日
tsconfig.json
"baseUrl": "src",
"paths": {
"@ProjectName1/*": ["../projects/ProjectName1/src/app/modules/*"],
"@Projectname2/*": ["../projects/Projectname2/src/app/modules/*"],
"@environment/*": ["environments/*"],
"project-core": ["../dist/project/project-core"],
"project-core/*": ["../dist/project/project-core/*"]
}
目前我没有在 tsconfig.app.json 中声明路径,因为它与 tsconfig.json 中的路径相同。所以这与我之前的回答不同,因为我只有 tsconfig.json.
中的路径
我正在尝试为 Angular 6
库配置路径(我已成功为之前的 Angular 项目配置路径)
tsconfig.json
文件中我以前的应用程序的工作原理如下:
"compilerOptions": {
[...]
"baseUrl": "src",
"paths": {
"@class/*": [ "app/class/*" ],
"@services/*": [ "app/services/*" ],
"@views/*": [ "app/views/*" ]
}
}
然后像这样使用它:
Import { Item } form '@class/item';
在我的新应用程序中,我在 tsconfig.**lib**.json
文件中以相同的方式尝试:
"compilerOptions": {
[...]
"baseUrl": "src",
"paths": {
"@class/*": [ "lib/class/*" ],
"@services/*": [ "lib/services/*" ],
"@views/*": [ "lib/views/*" ]
}
}
我试过像这样在我的库的组件中导入 class,但它不起作用(VSCode 找不到文件):
Import { Item } form '@class/item';
请注意,主项目中的 import
语句正在运行:
Import { Item } from 'myLibrary';
知道我做的不好吗?
感谢您的帮助。
这是我上面的评论,如果你看到这是一个正确的答案。
Angular会使用tsconfig.json
文件,在**architect --> build --> options --> tsconfig**
中的angular.json
文件中配置。而 VS Code
使用位于工作区底部的 tsconfig.json
文件。您需要在两个配置中添加路径以使它们都能正常工作,或者更改项目以使用 angular.json
文件中的基础 tsconfig.json
文件。
tsconfig.json
文件有一个 属性 扩展,它将以另一个文件为基础并覆盖 tsconfig.lib.json
文件中声明的所有内容。因此,如果您在 tsconfig.lib.json
文件中声明了路径,则 tsconfig.json
文件中不再需要这些路径。
编辑 2019 年 7 月 29 日 tsconfig.json
"baseUrl": "src",
"paths": {
"@ProjectName1/*": ["../projects/ProjectName1/src/app/modules/*"],
"@Projectname2/*": ["../projects/Projectname2/src/app/modules/*"],
"@environment/*": ["environments/*"],
"project-core": ["../dist/project/project-core"],
"project-core/*": ["../dist/project/project-core/*"]
}
目前我没有在 tsconfig.app.json 中声明路径,因为它与 tsconfig.json 中的路径相同。所以这与我之前的回答不同,因为我只有 tsconfig.json.
中的路径