#node.js #npm #package.json #npm-scripts
#node.js #npm #package.json #npm-скрипты
Вопрос:
В моем унаследованном проекте я пытаюсь заставить команду build создать версию, отличную от Production
.
Я попытался изменить псевдоним в script
разделе в package.json
, чтобы передать дополнительные переменные, такие как --dev
и --configuration=dev
, но безрезультатно.
В проекте есть эти файлы данных json:
env.dev
env.development
env.production
с package.json
имеет этот псевдоним сборки, build:dev
который я запускаю npm run build:dev
:
"scripts": {
"start": "NODE_ENV=dev amp;amp; react-scripts start",
…
"build:dev": "npm run build --dev --configuration=dev amp;amp; react-scripts build"
}
Это работает и выполняется сборка, но только для продакшена, что я проверяю при просмотре результирующих файлов.
Если я удалю файл env.production
из каталога и запущу команду сборки, произойдет сбой с:
Creating an optimized production build...
Failed to compile.
Module not found: Error: Can't resolve 'polyfills' in 'C:WorkMyProjWebSiteNamesrc'
который просто сообщает мне, что он может быть псевдонимом, polyfills
найденным в env.production
файле для местоположения NODE_PATH=src/
.
Мысли?
Ответ №1:
вам нужно установить env. переменную, как вы делаете в «пуск», перед вызовом команды сборки.
"build:dev": "NODE_ENV=dev npm run build --dev --configuration=dev amp;amp; react-scripts build"
Комментарии:
1. в Windows используйте
"build:dev": "SET NODE_ENV=dev npm run build --dev --configuration=dev amp;amp; react-scripts build"
— т.е. добавляйте NODE_ENV с помощью SET2. Настройка
NODE_ENV
не влияет на нее, будь то использованиеenv NODE_ENV
, вызовexport NODE_ENV=dev
перед запуском сборки или помещение ее в.env
файл