从本地Angular库自动导入包含“ public-api”并中断应用程序

时间:2019-03-29 14:52:06

标签: angular typescript angular7 angular-library

我在项目文件夹中都有一个我的应用程序要使用的Angular 7库。当我从编译的库中自动导入时,Visual Studio Code会在引用中使用公共api曲面的路径,如下所示:

import { ModuleName } from '@org/lib/public-api';

这会导致应用程序中的编译错误:

ERROR in src/app/app.module.ts(9,28): Error during template compile of 'AppModule'
[2]   Could not resolve @org/lib relative to [object Object]..

当我手动修复导入以删除“ public-api”部分时,如下所示:

import { ModuleName } from '@org/lib';

该应用重新编译即可。我认为我没有更改任何默认配置。这就是我的tsconfig在工作区根目录中的样子,而我的库和应用程序tsconfigs只是ng generate

附带的现成扩展名

工作区tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es5",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2018", "dom"],
    "paths": {
      "@org/lib": ["dist/org-lib"],
      "@org/lib/*": ["dist/org-lib/*"]
    }
  }
}

以前有人来过吗?

1 个答案:

答案 0 :(得分:0)

如果以后有人遇到这个问题,可以通过查看如何为本地开发设置角度项目来找到答案。除了他们的public_api文件之外,他们还有一个index.ts,其中只有

export * from './public_api';

这使您可以在开发过程中在库之间进行交叉引用。