Сборка под управлением NPM всегда создает производство, а не разработку

#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 с помощью SET

2. Настройка NODE_ENV не влияет на нее, будь то использование env NODE_ENV , вызов export NODE_ENV=dev перед запуском сборки или помещение ее в .env файл