Я обновил проект Angular 5.2.0 с CLI 1.7.3 до Angular 6.1.7 с CLI 6.2.2.
Теперь, когда я запускаю ng build --prod, я получаю ошибку ниже.
ERROR in Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
TypeError: Cannot read property 'replace' of undefined
at normalizeBackSlashDirection (C:\workspace\appView\node_modules\webpack\lib\RequestShortener.js:16:17)
at new RequestShortener (C:\workspace\appView\node_modules\webpack\lib\RequestShortener.js:26:15)
at new Compiler (C:\workspace\appView\node_modules\webpack\lib\Compiler.js:189:27)
at Compiler.createChildCompiler (C:\workspace\appView\node_modules\webpack\lib\Compiler.js:431:25)
at Compilation.createChildCompiler (C:\workspace\appView\node_modules\webpack\lib\Compilation.js:2429:24)
at Object.pitch (C:\workspace\appView\node_modules\mini-css-extract-plugin\dist\loader.js:78:43)
Как я мог это исправить?
Ведьминскую версию webpack вы используете?
@Andifined не повезло с npm update
@fatemefazli версия 4.19.0





Это произошло из-за частной переменной, объявленной в TS, которую вы используете в hTML.
Невозможно прочитать свойство "заменить" неопределенного
эта замена является частной, поэтому не может читать в файле HTML
Шаг к обновлению
Установка или обновление Angular CLI до версии 6
Обновить Angular CLI легко, нужно установить последнюю версию из npm, используя следующую команду:
npm install -g @angular/cli
Вам может потребоваться добавить sudo в зависимости от вашей конфигурации npm. Также само собой разумеется, что вам нужны Node.js 8+ и NPM, установленные в вашей системе, чтобы иметь возможность установить и запустить Angular CLI 6.
Обновление Angular 5 CLI до версии 6 (метод 2) Вы также можете удалить предыдущую версию Angular CLI 5 перед установкой последней версии, используя следующую команду:
npm uninstall -g angular-cli
npm cache clean
Затем запустите команду установки npm глобально:
npm install -g @angular/cli
Обновление проектов Angular 4 | 5
Сначала начните с локальной установки Angular CLI 6 с помощью следующей команды (убедитесь, что вы находитесь в корневой папке проекта):
npm install @angular/cli@latest
Обновление файлов конфигурации Есть много различий между Angular 4 | 5 и Angular 6, например: • Angular 6 использует angular.json вместо angular-cli.json. • Различные версии зависимостей в package.json и т. д.
Вы можете автоматически обновлять различные файлы конфигурации, выполнив следующую команду из корневой папки проекта:
ng update @angular/cli
Обнаружение пакетов для обновления Angular CLI имеет новую утилиту, которая позволяет вам автоматически анализировать файл package.json вашего проекта и отображает зависимости, которые необходимо обновить.
Используя терминал из корневой папки вашего проекта Angular 5, выполните следующую команду:
ng update
Это пример вывода этой команды:
Обновление базовых пакетов до Angular 6 Теперь вам нужно обновить основные пакеты / зависимости до Angular 6. Просто выполните следующую команду:
ng update @angular/core
Обновление RxJS Вы можете обновить RxJS с помощью команды ng update:
ng update rxjs
Сначала проверьте свои версии установленного Angular CLI и другие зависимости с помощью:
ng --version
попробуйте изменить свой веб-пакет, надеюсь, это поможет:
npm remove webpack
тогда:
npm install [email protected]
или Удалите node_modules и package-lock.json Обновите версию веб-пакета в package.json
Снова запустите npm install.
У меня нет webpack в package.json. Устанавливается с помощью @angular-devkit/build-angular или другого пакета.
@Bishan да, но вы можете изменить версию веб-пакета
Конечно. Я попробую это, добавив [email protected] в package.json
Не повезло с этим. Снова та же проблема.
Однажды была эта проблема. Проблема, вероятно, заключалась в несовместимости версий Angular и CLI. использование
npm updateисправило это для меня