Как импортировать библиотеку angular 6 в другую библиотеку angular 6?
Я создал общую библиотеку и создал новую библиотеку функций приложения, и я хочу импортировать общую библиотеку в библиотеку функций приложения.
Как я могу импортировать или включить одну библиотеку в другую библиотеку?
1 ответ
Лучший способ - использовать вашу общую библиотеку в качестве зависимости узла в вашей библиотеке приложения.
Пример: если вы создали свою общую библиотеку с помощью команды npm следующим образом:
ng generate library sharedlib
Затем создайте свою общую библиотеку и опубликуйте в любом общедоступном (npmjs) или частном (ваша организация, например, JFrog) артефакте с помощью следующей команды
npm publish sharedlib
И используйте его как зависимость (добавьте в package.json) в своей библиотеке приложения как
"peerDependencies": {
"@angular/common": "^7.2.0",
"@angular/core": "^7.2.0",
"sharedlib": "1.0.0"
}
Я считаю, что импорт модуля общей библиотеки (из файла public-api.ts) в библиотеку приложения (если оба в одном репозитории) также может работать, но это не лучший способ сделать это.
Вы должны добавить любую библиотеку, которую вы используете как peerDependencies, в package.json вашей библиотеки. Что-то вроде этого:
"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"@angular/forms": "^6.0.0",
"@angular/material": "^6.4.7"
}
Предполагая, что вы создали библиотеку, используя ng generate library my-library
узел peerDependencies уже существует.
Это позволит избежать любого конфликта, если пользователь вашей библиотеки также использует другие.