Контекст
Я создал несколько независимых угловых библиотек в разных папках:
- / домашний / пользователь / lib1
- / домашний / пользователь / lib2
- / домашний / пользователь / lib3
Библиотеки lib2 и lib3 зависят от библиотеки lib1.
// Example of the lib3.module.ts
import {Lib1Module} from '@libs/lib1';
@NgModule({
declarations: [Lib3Component],
imports: [
Lib1Module
],
exports: [Lib3Component]
})
export class Lib3Module { }
Однако, когда я создаю символическую ссылку lib1 и импортирую ее в lib2 и lib3 с помощью команды npm link lib1, у меня возникает проблема сборки (ниже, вы можете увидеть сообщение об ошибке).
ERROR: : Unexpected value 'Lib1Module in /home/user/Documents/multiple-angular-lib/lib1/dist/libs/lib1/libs-lib1.d.ts' imported by the module 'Lib2Module in /home/user/Documents/multiple-angular-lib/lib2/projects/libs/lib2/src/lib/lib2.module.ts'. Please add a @NgModule annotation.
Самое удивительное во всем этом то, что если я разверну свой компонент в официальном репозитории npm, он заработает. Та же структура и файлы! Значит, проблема с символической ссылкой.
Что я пробовал
Я попытался следовать предлагаемым здесь решениям:
Как воспроизвести мою проблему
Я воспроизвел здесь пример: https://github.com/fjoalland/multiple-angular-lib/tree/master
Просто следуйте инструкциям, и у вас должна быть такая же ошибка, как и у меня.
Сообщение об ошибке
Ниже, полная ошибка, которую я получил, когда пытался собрать lib2 с символической ссылкой lib1
[root@user lib2]# ng build
Building Angular Package
------------------------------------------------------------------------------
Building entry point '@libs/lib2'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
ERROR: : Unexpected value 'Lib1Module in /home/user/Documents/multiple-angular-lib/lib1/dist/libs/lib1/libs-lib1.d.ts' imported by the module 'Lib2Module in /home/user/Documents/multiple-angular-lib/lib2/projects/libs/lib2/src/lib/lib2.module.ts'. Please add a @NgModule annotation.
An unhandled exception occurred: : Unexpected value 'Lib1Module in /home/user/Documents/multiple-angular-lib/lib1/dist/libs/lib1/libs-lib1.d.ts' imported by the module 'Lib2Module in /home/user/Documents/multiple-angular-lib/lib2/projects/libs/lib2/src/lib/lib2.module.ts'. Please add a @NgModule annotation.
See "/tmp/ng-V1D4qF/angular-errors.log" for further details.
Содержимое файла angular-error.log:
[error] Error: : Unexpected value 'Lib1Module in D:/Documents/multiple-angular-lib/lib1/dist/libs/lib1/libs-lib1.d.ts' imported by the module 'Lib2Module in D:/Documents/multiple-angular-lib/lib2/projects/libs/lib2/src/lib/lib2.module.ts'. Please add a @NgModule annotation.
at Object.<anonymous> (D:\Documents\multiple-angular-lib\lib2\node_modules\ng-packagr\lib\ngc\compile-source-files.js:73:19)
at Generator.next (<anonymous>)
at fulfilled (D:\Documents\multiple-angular-lib\lib2\node_modules\ng-packagr\lib\ngc\compile-source-files.js:4:58)