Я пытаюсь создать библиотеку с несколькими модулями. Моя библиотека выглядит следующим образом.
У меня есть несколько модулей, таких как common-ui.
Задача 1
У меня есть модуль, и у меня есть файлы index.ts в каждой из папок, показанных выше, и из моих public.ts я делаю
export * from 'export * from './common-ui';
Это приводит к следующей ошибке
Также я вижу, что 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';
Это приводит к следующей ошибке
Это происходит из-за первой ошибки, или нам нужно добавить что-то особенное при сборке библиотеки для доступа к подпапкам. Пожалуйста, помогите.
Мой файл 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"
]
}