mod*_*777 0 typescript angular-cli angular
我想使用路径映射直接引用与我的angular应用程序位于同一目录结构中的库。
结构体:
mycompany-mylib/
src/
tsconfig.json
Run Code Online (Sandbox Code Playgroud)
我已将以下内容添加到我的 tsconfig.json
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"@mycompany/mylib": ["mycompany-mylib/lib/src/public_api"],
}
}
}
Run Code Online (Sandbox Code Playgroud)
此配置似乎是正确的,并且Typescript可以解析这些路径,因为我在Visual Studio Code中没有出现错误并获得了完整的智能感知。
例如:
import { UserClientModule } from '@mycompany/mylib'
Run Code Online (Sandbox Code Playgroud)
但是,当我运行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'.
Run Code Online (Sandbox Code Playgroud)
该技术应该有效,因为有数篇博客文章和github问题都在引用它。我只是看不到我在做什么错。我可以通过提供别名配置来在webpack中解决此问题,但是由于webpack.config.js角度cli中没有,所以我无法做到这一点。
我本人可以修复它。默认情况下,Angular CLI使用另一个配置: ./src/tsconfig.app.json,我也在其中添加了配置,并对路径进行了如下修改:
{
"compilerOptions": {
...
"baseUrl": "./",
"paths": {
"@mycompany/mylib": ["../mycompany-mylib/lib/src/public_api"],
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在只要没有node_modules文件夹,它就可以正常编译mycompany-mylib。我仍然要感谢对此的解决方案。
| 归档时间: |
|
| 查看次数: |
2543 次 |
| 最近记录: |