:) Я установил @angular/cli@next
глобально с помощью пряжи, чтобы создать проект angular7.
Я пытаюсь создать проект библиотеки, чтобы добавить несколько написанных мной библиотек, которые я хочу использовать в несколькихпроекты.
Я создал проект библиотеки с помощью команды ng new tuxin-libs --style=scss --experimental-ivy
и набрал No
при добавлении маршрутизации, поскольку это будет просто проект библиотеки.
, затем я ввел tuxin-libs
и создалбиблиотека с ng generate library cars --prefix=tuxin
и созданный компонент с именем car-type
с ng generate component car-type --project=cars
Мне не нужен компонент основных автомобилей, поэтому я удалил файл cars.component.ts
и cars.component.spec.ts
и удалил export * from './lib/cars.component';
с public_api.ts
и добавил мой код.
теперь я использую @angular/material
, apollo-angular
и ngx-webstorage-service
.и я действительно запутался в том, как добавить его в мой библиотечный проект
некоторые говорят, что добавить его в качестве зависимого узла.поэтому я ввел projects/cars
и попытался установить эти библиотеки как равноправные зависимости с помощью следующих команд:
yarn add --peer @angular/material @angular/cdk @angular/animations
yarn add --peer apollo-angular apollo-angular-link-http apollo-link apollo-client apollo-cache-inmemory graphql-tag graphql
yarn add --peer ngx-webstorage-service
затем при попытке построить модуль cars
, введя корневой каталог моего библиотечного проекта ивыполнить ng build cars
Я получаю
BUILD ERROR
Cannot read property 'isSkipSelf' of null
TypeError: Cannot read property 'isSkipSelf' of null
at ProviderElementContext._getDependency (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11504:22)
at /Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11449:64
at Array.map (<anonymous>)
at /Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11449:30
at Array.map (<anonymous>)
at ProviderElementContext._getOrCreateLocalProvider (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11427:67)
at /Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11325:27
at Array.forEach (<anonymous>)
at new ProviderElementContext (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:11322:53)
at TemplateParseVisitor.visitElement (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/@angular/compiler/bundles/compiler.umd.js:15093:35)
, когда я пытаюсь вместо этого добавить его как обычные зависимости, те же команды пряжи, что и раньше, без параметров --peer
, а затем пытаюсь скомпилировать библиотеку cars
, которую яget:
Building Angular Package
Building entry point 'cars'
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to FESM5
Bundling to UMD
No name was provided for external module 'graphql-tag' in output.globals – guessing 'gql'
No name was provided for external module 'apollo-angular' in output.globals – guessing 'i1'
No name was provided for external module 'ngx-webstorage-service' in output.globals – guessing 'ngxWebstorageService'
Minifying UMD bundle
Copying declaration files
Writing package metadata
Distributing npm packages with 'dependencies' is not recommended. Please consider adding @angular/animations to 'peerDependencies' or remove it from 'dependencies'.
BUILD ERROR
Dependency @angular/animations must be explicitly whitelisted.
Error: Dependency @angular/animations must be explicitly whitelisted.
at Object.keys.forEach.dep (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:125:23)
at Array.forEach (<anonymous>)
at checkNonPeerDependencies (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:119:44)
at /Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:93:13
at Generator.next (<anonymous>)
at /Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:7:71
at new Promise (<anonymous>)
at __awaiter (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:3:12)
at writePackageJson (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:74:12)
at Object.<anonymous> (/Users/ufkfir/projects/wd-proj/tuxin-libs/node_modules/ng-packagr/lib/ng-v5/entry-point/write-package.transform.js:41:11)
эта ошибка происходит точно так же, используя angular6 cli, а не последний angular7 ... но в любом случае ... сейчас я использую 7, поэтому я хочу, чтобы это было исправлено здесь:)
Я также пытался использовать ng add @angular/material --project=cars
и ng add apollo-angular --project=cars
, в обоих случаях я получаю Multiple projects are defined; please specify a project name
, хотя я определил проект.
есть идеи?
любая информация по этому поводупроблема будет принята с благодарностью.
спасибо!