[英]Using path mapping in tsconfig with Angular CLI
我想使用路徑映射直接引用與我的angular應用程序位於同一目錄結構中的庫。
結構體:
mycompany-mylib/
src/
tsconfig.json
我已將以下內容添加到tsconfig.json
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"@mycompany/mylib": ["mycompany-mylib/lib/src/public_api"],
}
}
}
此配置似乎是正確的,並且Typescript可以解析這些路徑,因為我在Visual Studio Code中沒有出現錯誤並獲得了完整的智能感知。
例如:
import { UserClientModule } from '@mycompany/mylib'
但是,當我運行ng serve
或ng serve --aot
,出現錯誤,未找到模塊(我的AngularCLI版本為1.7.4 ):
ERROR in src/app/core/components/user-profile/user-profile.component.ts(5,43): error TS2307: Cannot find module '@mycompany/mylib'.
該技術應該有效,因為有數篇博客文章和github問題都在引用它。 我只是看不到我在做什么錯。 我可以通過提供別名configuraton在webpack中解決此問題,但是由於angular cli中沒有webpack.config.js
,所以我無法做到這一點。
我本人可以修復它。 默認情況下,Angular CLI使用另一個配置: ./src/tsconfig.app.json
,我./src/tsconfig.app.json
添加了配置,並對路徑進行了如下修改:
{
"compilerOptions": {
...
"baseUrl": "./",
"paths": {
"@mycompany/mylib": ["../mycompany-mylib/lib/src/public_api"],
}
}
}
現在只要mycompany-mylib
沒有node_modules
文件夾,它就可以正常編譯。 我仍然要感謝對此的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.