簡體   English   中英

在Angular CLI的tsconfig中使用路徑映射

[英]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 serveng 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM