Я начал новый новый проект, созданный с помощью angular-cli 8.1.2. Я хочу иметь общую библиотеку для нескольких микросервисов (приложений). Эту библиотеку НЕЛЬЗЯ включать в папку с приложениями, это другой проект, у него свой git. Если я попробую это, приложение не скомпилируется в режиме aot/production, а будет работать в режиме jit.
Я хочу 2 проекта в 2 каталогах для приложения:
/test-lib
/test-app
Поэтому я сначала генерирую библиотеку с помощью angular-cli:
ng new test-lib --create-application=false
(using defaults)
cd test-lib/
ng generate library test-lib --prefix=test
ng build test-lib
Это создает папку библиотеки и проект внутри /test-lib/projects/test-lib.
Теперь я создаю (первое) приложение:
cd ..
ng new test-app
(using defaults)
Теперь я подключаю библиотеку к этому приложению:
Добавление «путей» в tsconfig.json:
"paths": {
"test-lib": [
"../test-lib/dist/test-lib"
],
"test-lib/*": [
"../test-lib/dist/test-lib/*"
]
}
Добавляем импорт в app.module.ts:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { TestLibModule } from 'test-lib';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
TestLibModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
И добавил этот тег в app.component.html:
<test-test-lib></test-test-lib>
Запуск «ng serve» теперь работает без проблем.
Запуск «ng build» в папке test-app завершается с ошибкой:
ERROR in : Unexpected value 'TestLibModule in C:/Users/.../test-lib/dist/test-lib/test-lib.d.ts' imported by the module 'AppModule in C:/Users/.../test-app/src/app/app.module.ts'. Please add a @NgModule annotation.
enter code here
Дополнительно сообщает:
: 'test-test-lib' is not a known element:
1. If 'test-test-lib' is an Angular component, then verify that it is part of this module.
2. If 'test-test-lib' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to
the '@NgModule.schemas' of this component to suppress this message. ("
</ul>
[ERROR ->]<test-test-lib></test-test-lib>")
Мои попытки импортировать компонент в app.component.ts также не увенчались успехом (не найдено)
Разве нельзя простым способом создать библиотеку с angular-cli, которая находится во внешней папке?