Проблемы с упаковкой в ​​бочки в угловой библиотеке 7 - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь создать библиотеку с несколькими модулями. Моя библиотека выглядит следующим образом.

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"
  ]
}
...