在tsconfig中使用路径映射和Angular CLI
我想使用路径映射直接引用与我的angular应用程序位于同一目录结构中的库 结构:在tsconfig中使用路径映射和Angular CLI,angular,typescript,angular-cli,Angular,Typescript,Angular Cli,我想使用路径映射直接引用与我的angular应用程序位于同一目录结构中的库 结构: mycompany-mylib/ src/ tsconfig.json 我已将以下内容添加到我的tsconfig.json { "compilerOptions": { ... "baseUrl": ".", "paths": { "@mycompany/mylib": ["mycompany-mylib/lib/src/public_api"],
mycompany-mylib/
src/
tsconfig.json
我已将以下内容添加到我的tsconfig.json
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"@mycompany/mylib": ["mycompany-mylib/lib/src/public_api"],
}
}
}
这个配置似乎是正确的,Typescript可以解析这些路径,因为我在VisualStudio代码中没有错误和完整的intellisense
例如:
import { UserClientModule } from '@mycompany/mylib'
但是,当我运行ng serve
或ng serve--aot
时,我得到一个错误,即找不到模块(我的AngularCLI版本是1.7.4):
这项技术应该可以使用,因为有几个博客文章和github问题引用了它。我只是看不出我做错了什么。我可以通过提供别名配置在webpack中修复此问题,但由于angular cli中没有
webpack.config.js
,因此我无法做到这一点。我可以自己修复它。默认情况下,Angular CLI使用另一个配置:/src/tsconfig.app.json
,我也在那里添加了配置,并稍微修改了如下路径:
{
"compilerOptions": {
...
"baseUrl": "./",
"paths": {
"@mycompany/mylib": ["../mycompany-mylib/lib/src/public_api"],
}
}
}
只要
mycompany mylib
中没有node\u modules
文件夹,它现在就可以编译了。我仍然很感激能找到解决这个问题的办法。我自己能解决它。默认情况下,Angular CLI使用另一个配置:/src/tsconfig.app.json
,我也在那里添加了配置,并稍微修改了如下路径:
{
"compilerOptions": {
...
"baseUrl": "./",
"paths": {
"@mycompany/mylib": ["../mycompany-mylib/lib/src/public_api"],
}
}
}
只要
mycompany mylib
中没有node\u modules
文件夹,它现在就可以编译了。我仍然很感激能找到解决方案。不确定,但似乎类似的问题可能会设置“baseUrl”:“/src”
和与其相关的路径
会让它工作,它的来源是”/“
,但我的不工作,我不知道为什么!不确定,但似乎类似的问题可能会设置“baseUrl”:“/src”
和与其相关的路径将使其工作,其来源为”/“
,但我的不工作,我不知道为什么!奇怪的是,在angular 5中,我有一个配置也不起作用。我有许多由angular cli创建的项目(根目录中有一个tsconfig.json
文件,src文件夹中有一个tsconfig.app.json
文件)。我不必修改projects文件夹中的tsconfig.app.json
。我在根文件夹的tsconfig.json
文件中添加了所需的所有内容,效果很好。奇怪的是,在angular 5中,我得到了一个同样不起作用的配置。我有许多由angular cli创建的项目(根文件夹中有一个tsconfig.json
文件,src文件夹中有一个tsconfig.app.json
文件)。我不必修改projects文件夹中的tsconfig.app.json
。我在根文件夹的tsconfig.json
文件中添加了所需的所有内容,效果很好。