Angular 7库中的桶包装问题

时间:2019-07-02 15:10:31

标签: angular angular7 angular-library ng-packagr

我正在尝试创建一个包含多个模块的库。我的图书馆结构如下。

enter image description here

我有多个模块,例如common-ui。

问题1

我有模块,并且在上面显示的每个文件夹中都有index.ts文件,而我正在从public.ts中访问

export * from 'export * from './common-ui';

这会导致以下错误

enter image description here

我也看到lib.metadata.json为空

{"__symbolic":"module","version":4,"exports":[{"from":"./node-tree/index"}],"metadata":{},"origins":{},"importAs":"@lib/client"}

但是,如果我明确使用桶文件,如下所示(在所有使用桶的文件中)

export * from 'export * from './common-ui/index';

错误消失并且一切正常。 我需要明确指定桶文件吗?有什么办法解决吗?

问题2

在完成上述操作后(使用索引),如果我使用了桶并将文件导入为

import { CommonUiModule, Node } from '@lib/common';

一切正常。但是,如果我将路径明确指定为

import { CommonUiModule, Node } from '@lib/common/common-ui';

它导致以下错误

Here

是因为第一个错误而发生,还是在构建库以访问子文件夹时需要添加一些特殊内容。请帮助。

我的 tsconfig.lib.json 文件如下

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/lib",
    "target": "es2015",
    "module": "es2015",
    "moduleResolution": "node",
    "declaration": true,
    "sourceMap": true,
    "inlineSources": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "types": [],
    "lib": [
      "dom",
      "es2018"
    ]
  },
  "angularCompilerOptions": {
    "annotateForClosureCompiler": true,
    "skipTemplateCodegen": true,
    "strictMetadataEmit": true,
    "fullTemplateTypeCheck": true,
    "strictInjectionParameters": true,
    "enableResourceInlining": true
  },
  "exclude": [
    "src/test.ts",
    "**/*.spec.ts"
  ]
}

0 个答案:

没有答案