Не удается запустить новый проект Angular CLI

У меня есть задание на домашнюю работу для собеседования. Это нужно сделать в Angular, поэтому я решил, что я быстро обновлю Node.js, NPM и Angular CLI, прежде чем начать. Похоже, это была плохая идея.

После выполнения моей команды: ng new project-name --style scss все, кажется, создает себя просто отлично. Но когда я запускаю ng serve, я получаю следующую ошибку:

Cannot find module 'uglifyjs-webpack-plugin'
Error: Cannot find module 'uglifyjs-webpack-plugin'
    at Function.Module._resolveFilename (module.js:555:15)
    at Function.Module._load (module.js:482:25)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/andybarratt/dev/project-name/node_modules/@angular/cli/models/webpack-
configs/production.js:13:24)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Module.require (module.js:604:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/andybarratt/dev/project-name/node_modules/@angular/cli/models/webpack-
configs/index.js:9:10)
    at Module._compile (module.js:660:30)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)

Я ничего не могу найти с этой ошибкой, связанной с Angular где угодно. Как я уже сказал, это совершенно чистый проект; Я еще не начал кодирование.

Запуск ng --version дает мне следующее:

    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/

Angular CLI: 1.6.6
Node: 9.4.0
OS: darwin x64
Angular: 5.2.2
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.6
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.6
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0

Справка

Ответ 1

Это было вызвано только на их учетной записи GitHub, https://github.com/angular/angular-cli/issues/9427.

Просто получите более раннюю версию и/или исправьте их проблему и поставьте запрос на перенос (PR).

Ответ 2

Добавьте "uglifyjs-webpack-plugin": "1.1.6" в ваш пакет package.json, пока они не исправят проблему с зависимостями (https://github.com/angular/angular-cli/issues/9427)

Также вы можете использовать команду npm i --save-dev [email protected] вместо edditing package.json вручную, как @Botonomous и @toughskin, упомянутые

Ответ 3

Как последний

uglifyjs-webpack-plugin выпустила версию 1.1.8, которая должна устранить эту проблему.

Вы можете заставить свою локальную установку использовать эту версию, выполнив следующие шаги:

npm install [email protected] --save
npm uninstall [email protected] --save

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

Я хотел бы напомнить всем, что у вас есть только воспроизводимые установки, если вы используете файл блокировки. Оба NPM v5 + и пряжи поддерживают стоп файлы. Если ваш CI работает один день, но не следующий, и вы не изменили свой код или package.json, это, вероятно, потому, что одна из ваших зависимостей имела плохую версию, и у вас не было файла блокировки.

Это ваша ответственность как потребитель библиотеки использовать lockfiles. Никто не хочет делать релиз с ошибками, но иногда это происходит, и самое лучшее, что мы можем сделать, это исправить его как можно быстрее с помощью новой версии. Когда у вас есть пара тысяч полных зависимостей, это всего лишь вопрос времени, пока у одного из них не будет плохого выпуска.

Ответ берется из Не удается выполнить из-за версии uglifyjs-webpack-plugin 1.1.7

Ответ 4

Я борюсь с этой проблемой в течение часа. Я нашел проблему здесь, используя комментарий timjklein36. Я смог исправить проблему, вернувшись к предыдущей версии, используя:

npm i --save-dev [email protected]

Все кредиты timjklein36 на GitHub за этот ответ. Я просто надеюсь, что смогу сэкономить некоторое время.