'ng add @ angular / material' вызывает ошибку, почему?

Когда я пытаюсь установить угловые компоненты материала с помощью команды ng add, я получаю package already installed ошибку.

$ ng add @ angular / material
Пропуск установки: пакет уже установлен

Не удается найти модуль '@ angular-devkit / schematics / tasks'
Ошибка: не удается найти модуль '@ angular-devkit / schematics / tasks'
в Function.Module._resolveFilename (internal / modules / cjs / loader .js: 580: 15)
в Function.Module._load (internal / modules / cjs / loader.js: 506: 25)
в Module.require (internal / modules / cjs / loader.js : 636: 17)
при требовании (internal / modules / cjs / helpers.js: 20: 18)
при объекте. (C: \ Users \ emilbonnek \ node_modules @ angular \ material \ schematics \ ng-add \ index.js: 10: 17)
в Module._compile (internal / modules / cjs / loader.js: 688: 30 )
в Object.Module._extensions..js (internal / modules / cjs / loader.js: 699: 10)
в Module.load (internal / modules / cjs / loader.js: 598: 32)
в tryModuleLoad (internal / modules / cjs / loader.js: 537: 12)
в Function.Module._load (internal / modules / cjs / loader.js: 529: 3)
в Module.require (internal / modules / cjs / loader.js: 636: 17)
в require (internal / modules / cjs / helpers.js: 20: 18)
в новом ExportStringRef ( C: \ Users \ emilbonnek \ Documents \ private \ ultimating \ node_modules @ angular-devkit \ schematics \ tools \ export-ref.js: 18: 25)
в NodeModulesEngineHost._resolveReferenceString (C: \ Users \ emilbonnek \ Documents \ private \ ultimating \ node_modules @ angular-devkit \ schematics \ tools \ node-module-engine-host.js: 94: 21)
в NodeModulesEngineHost.createSchematicDescription (C: \ Users \ emilbonnek \ Documents \ private \ ultimating \ node_modules @ угловой- devkit \ schematics \ tools \ file-system-engine-host-base.js: 179: 34)
в SchematicEngine.createSchematic (C: \ Users \ emilbonnek \ Documents \ private \ ultimating \ node_modules @ angular-devkit \ схема \ src \ engine \ engine.js: 219: 38)

У меня нет доступа ни к одному из модулей, поэтому я не думаю, что это потому, что пакет уже установлен, однако, возможно, я просто неправильно понял что-то о схемах.

Я использую angular CLI версии 8.0.3 и то же самое для devkit / core и devkit / schematics. Я полностью уверен, что запускаю команду в правильном каталоге.

Почему команда не работает должным образом? любая помощь приветствуется.


person Emil Bonne Kristiansen    schedule 18.06.2019    source источник
comment
Я была такая же проблема. Установка материала npm install --save @angular/material @angular/cdk @angular/animations и запуск ng add @angular/material у меня сработали.   -  person Aj1    schedule 19.06.2019
comment
какую версию angular cli вы используете /   -  person Aniruddha Das    schedule 19.06.2019
comment
@AniruddhaDas 8.0.3, это тоже в посте   -  person Emil Bonne Kristiansen    schedule 20.06.2019


Ответы (3)


Думаю, что-то не так с вашими node_modules, поскольку он не находит @angular-devkit/schematics/tasks. Я бы почистил его и переустановил снова, чтобы избежать любых неожиданных проблем, и попробовал бы еще раз.

Принятие парадигмы схемы означает, что мы больше не редактируем package.json напрямую, а используем только ng add и ng update, но, как сказал Aj1, иногда он работает, устанавливая пакет и запуская схему после этого.

person Mateo Tibaquira    schedule 18.06.2019

Я столкнулся с этой проблемой также с последней версией Material UI и Angular CLI. Я смог запустить команду добавления только после установки материала вручную как @ Aj1, упомянутого выше:

npm install --save @angular/material @angular/cdk @angular/animations
ng add @angular/material
person ForrestLyman    schedule 07.11.2019

Обязательно установите глобально: @ angular-devkit / schematics-cli

npm install -g @angular-devkit/schematics-cli

Таким образом, он будет работать до установки npm

person Gonzalo Gallotti    schedule 05.02.2021