Angular 7 Package зависимости в библиотеке компонентов - PullRequest
0 голосов
/ 05 марта 2019

Я создал библиотеку компонентов в Angular 7, которая будет перенесена в другое приложение, и эти приложения смогут использовать компоненты.

У меня проблема с установкой угловой библиотеки.в библиотеке компонентов, но не связывается с библиотекой компонентов для использования в другом приложении, и я в конечном итоге с ошибками, как это ...

Module not found: Error: Can't resolve '@angular/material' in
 'C:\Source\MappingServices\GIT\repos\SomeFolderStructure\node_mo
dules\@myComp\components\fesm5'


ERROR in ./node_modules/@myComp/components/fesm5/components.js

Как я могу связать библиотеки, как это, чтобы ониПоездка вместе с библиотекой компонентов готова к использованию без дополнительных установок?

ОБНОВЛЕНИЕ Файл Package.json

{
"name": "@myComp/components",
"version": "0.0.1",
"whitelistedNonPeerDependencies": [
"agm","material", "ol"
],
"dependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"@agm/core": "^1.0.0-beta.5",
"ol": "^5.3.1"
},
"peerDependencies": {
"@angular/common": "^6.0.0-rc.0 || ^6.0.0",
"@angular/core": "^6.0.0-rc.0 || ^6.0.0",
"@agm/core": "^1.0.0-beta.5",
"ol": "^5.3.1"
},
"publishConfig": {
"registry": "http://someTFSdirectory"
}
}

1 Ответ

0 голосов
/ 02 мая 2019

Я предполагаю, что вы используете Angular CLI для создания вашей библиотеки, поэтому у вас должно быть package.json и ng-package.json в папке вашей библиотеки.

Внутри package.json вы должны перечислить все зависимости, чтобы NPM мог разрешить их. У вас есть три варианта:

dependencies: Затем NPM автоматически устанавливает их, когда кто-то еще использует вашу библиотеку. Зависимости, перечисленные здесь, также должны быть внесены в белый список внутри ng-package.json ("whitelistedNonPeerDependencies")

peerDependencies: Затем пользователь вашей библиотеки должен установить зависимость (добавив ее в свой собственный package.json)

bundledDependencies: Затем зависимость будет объединена с вашей библиотекой при ее создании. Это НЕ рекомендуется!

Глядя на ваш package-json, можно увидеть, что в разделе dependencies отсутствует зависимость @angular/material. Вот почему вы получаете сообщение об ошибке при импорте: NPM не знает, нужно ли его устанавливать, поэтому нет, поэтому во время выполнения @angular/material.

...