Ответ 1
Это может быть проблемой при неявно запуске devDependencies.
Попробуйте выполнить их неявно с помощью следующей команды.
npm install --dev
Я установил Angular/cli, а затем попытаюсь запустить команду ng, а затем подбрасывает ошибку. Я пробовал много вещей, таких как удаление угловых /cli, npm cache clean и т.д.
Версии @angular/compiler-cli и машинописного текста не могут быть определены. Самая распространенная причина этого - сломанная установка на npm.
Убедитесь, что ваш package.json содержит как @angular/compiler-cli, так и машинописный текст в devDependencies, а затем удалите node_modules и package-lock.json (если он у вас есть) и запустите npm install again.
Это может быть проблемой при неявно запуске devDependencies.
Попробуйте выполнить их неявно с помощью следующей команды.
npm install --dev
Общий выход, чтобы избежать этой проблемы
Создать новый проект
новое угловое семя
Скопируйте все зависимости по умолчанию и dev-dependenices из package.json в ваш текущий используемый проект (угловой, машинописный и т.д.).
Затем удалите node_modules и запустите пакет установки npm вашего текущего проекта или любой другой метод, который вы используете для reubild
rm -fr node_modules npm install
примечание: если это не дает вам самую последнюю версию, тогда у вас могут быть установлены глобальные инструменты в данных роуминга (в окне, изучаемом браузером типа %appdata%
, и перейдите к npm для наблюдения)
По умолчанию установка npm будет устанавливать все модули, перечисленные в качестве зависимостей. С флагом --production npm не будет устанавливать модули, перечисленные в devDependencies. либо мы можем пойти
Первый путь
для редактирования зависимой части в package.json, добавив ее с соответствующей версией
"dependencies": {
/*existing part */
"@angular/cli": "1.5.2",
"@angular/compiler-cli": "^5.0.0",
"typescript": "^2.4.2"
}
Второй путь
Чтобы установить зависимости dev, npm --production = false install будет работать даже с NODE_ENV = production.
Или вы можете запустить NODE_ENV = разработка npm install
для более подробной информации нажмите, чтобы узнать больше
В случае развертывания рекомендуется добавить скрипт preinstall
для устранения этих пробелов в зависимостях:
"preinstall": "npm install @angular/cli @angular/compiler-cli typescript"
npm install --only=dev
Во-первых, для предотвращения, обновить угловые
npm install -g @angular/cli
Во-вторых, также запустить "npm install", вы должны установить зависимости dev
npm install --dev
проверить зависимости без ошибок
ng --version
Не могли бы вы проверить, что ваш "@angular/compiler" в ваших зависимостях совместим с версией углового/кли.
Например:
"devDependencies": {
"@angular/cli": "1.4.8",
"@angular/compiler-cli": "4.4.6",
совместим с:
"@angular/compiler": "4.4.6",
Запустите команду
npm --production=false install
в вашем терминале. Также обратите внимание, что вы должны быть в папке проекта при выполнении этого.
Фактически реальная проблема связана с npm.
Если его загрузка --legacy-bundling=true
как --legacy-bundling=true
(что по умолчанию), вы получите эту проблему. Если вы видите папку node_modules, все зависимые модули будут вложенными.
Когда вы запускаете команду npm install
вы должны установить --legacy-bundling=false
npm install --legacy-bundling=false
Теперь, если вы видите папку node_modules, ни один из модулей не будет вложен. И все будет работать.
Вы можете установить npm поведение по умолчанию, используя следующую команду, тогда вам не придется устанавливать каждый раз.
npm set --legacy-bundling=false
Я столкнулся с этой проблемой, когда устанавливал зависимости npm на Jenkins. У меня был @angular/compiler-cli в devDependencies и typcript в зависимостях, а NODE_ENV=production
в среде.
Я попытался NODE_ENV=development npm install
и у меня это сработало.
Для получения более подробной информации смотрите это: https://github.com/angular/angular-cli/issues/8407