Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在tsconfig中使用路径映射和Angular CLI_Angular_Typescript_Angular Cli - Fatal编程技术网

在tsconfig中使用路径映射和Angular CLI

在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"],

我想使用路径映射直接引用与我的angular应用程序位于同一目录结构中的库

结构:

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
文件中添加了所需的所有内容,效果很好。