Angular 6 /在tsconfig.lib.json中声明库的路径

时间:2018-09-03 09:46:58

标签: angular path tsconfig compiler-options angular-library

我正在尝试为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/*" ]
    }
}

我曾尝试像这样在我的库的组件中导入一个类,但确实可以工作(VSCode无法找到文件):

Import { Item } form '@class/item';

请注意,主项目中的导入正在工作:

Import { Item } from 'myLibrary';

我做得不好的想法?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是我的评论,如果您看到这是正确的答案。

Angular将使用在angular.json architec-> build-> options-> tsconfig 中配置的tsconfig文件。 VS Code在工作区底部使用tsconfig.json。您需要在boths配置中添加路径,以使两者都能正常工作,或者将项目更改为在angular.json中使用基本tsconfig.json。

tsconfig.json具有属性扩展,它将以其他文件为基础并覆盖tsconfig.lib.json中声明的所有内容。因此,如果您在tsconfig.lib.json中声明了路径,则tsconfig.json路径将不再存在。