Почему происходит ошибка при использовании переменной окружения в файле конфигурации webpack?

Как улучшенный вопрос: Почему возникает странное поведение при попытке передать значения в конфигурацию вебпака при запуске скрипта? Почему команда <code>npm run build --env mode=development</code> вызывает ошибку [webpack-cli] Unknown command or entry 'mode=development', в то время как команда <code>npm run build --env mode=development --env foobar=gost</code> работает правильно? Кроме того, как объяснить ошибку ReferenceError: console is not defined при вызове переменной из конфигурационного файла?
  • 13 августа 2024 г. 14:53
Ответы на вопрос 2
Ошибка при использовании переменной окружения в файле конфигурации webpack может происходить из-за неправильного синтаксиса или формата передачи переменных, а также из-за того, что переменная окружения не была объявлена или не была правильно передана.

В вашем конкретном случае с командой `npm run build --env mode=development`, ошибка возникает потому, что вы пытаетесь передать переменную `mode=development` в качестве команды webpack, а webpack не распознает такой синтаксис. Он ожидает формат `--env key=value`. Поэтому команда `npm run build --env mode=development --env foobar=gost` работает правильно, так как здесь используется правильный формат ключ-значение для передачи переменных окружения.

Что касается ошибки `ReferenceError: console is not defined`, она может возникать, если вы пытаетесь использовать объект `console` в файле конфигурации webpack, который запускается среди других модулей. `console` является глобальным объектом браузера, и его использование в файле конфигурации webpack может вызвать проблемы. Рекомендуется избегать использование объектов браузера в конфигурационных файлах и лучше выводить отладочные сообщения настройкой `console.log` в различных частях вашего сценария сборки webpack.
Потестил. 
1. Проблема с conslole.log у тебя в русской "c", о чём намекает даже подсветка тут.
2. npm run съедает параметр --env , т.к. считает его своим, чтоб передавать аргументы в скрипт надо использовать разделитель -- : npm run build -- --env mode=development .
Ну или выкинуть убогий npm и использвать yarn\pnpm, где такой ереси нет.:)
Похожие вопросы