Как настроить NODE_ENV для производства / разработки в OS X - PullRequest
288 голосов
/ 08 февраля 2012

Для использования в средах express.js.Есть предложения?

Ответы [ 12 ]

612 голосов
/ 09 февраля 2012

Перед запуском приложения вы можете сделать это в консоли,

export NODE_ENV=production

Или, если вы находитесь в Windows, вы можете попробовать это:

SET NODE_ENV=production

или вы можете запустить свое приложение так:

NODE_ENV=production node app.js

Вы также можете установить его в своем файле js:

process.env.NODE_ENV = 'production';

Но я не предлагаю делать это в вашем исполняемом файле, так как нелегко открыть VIM на вашем сервере и перевести его на рабочий. Вы можете создать файл config.json в своем каталоге, и каждый раз, когда ваше приложение будет запущено, оно будет читать из него и устанавливать конфигурацию.

89 голосов
/ 29 июня 2015

в package.json:

{
  ...
  "scripts": {
    "start": "NODE_ENV=production node ./app"
  }
  ...
}

затем запустить в терминале:

npm start
50 голосов
/ 17 июня 2016

Никто не упомянул .env здесь еще?Создайте файл .env в корневом каталоге приложения, затем require('dotenv').config() и прочитайте значения.Легко изменяемый, легко читаемый, кросс-платформенный.

https://www.npmjs.com/package/dotenv

43 голосов
/ 27 января 2016

export NODE_ENV=production - плохое решение, оно исчезает после перезапуска.

если вы не хотите больше беспокоиться об этой переменной - добавьте ее в этот файл:

/etc/environment

не используйте синтаксис экспорта, просто напишите (в новой строке, если какой-то контент уже есть):

NODE_ENV=production

работает после перезагрузки. Вам больше не нужно будет повторно вводить команду export NODE_ENV = production в любом месте и просто использовать узел с чем угодно - навсегда, pm2 ...

Для герою:

heroku config:set NODE_ENV="production"

, что на самом деле по умолчанию.

21 голосов
/ 09 марта 2014
heroku config:set NODE_ENV="production"
21 голосов
/ 10 марта 2013

Это хорошая статья о NODE_ENV: http://www.hacksparrow.com/running-express-js-in-production-mode.html.

Для автоматической настройки от Grunt вы можете использовать плагин https://npmjs.org/package/grunt-env.

14 голосов
/ 02 февраля 2018

Чтобы не беспокоиться о том, запускаете ли вы свои скрипты в Windows, Mac или Linux, установите пакет cross-env.Тогда вы можете легко использовать свои скрипты, например:

"scripts": {
    "start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
    "start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}

Массивные реквизиты для разработчиков этого пакета.

8 голосов
/ 27 марта 2017

Для Windows Powershell используйте эту команду

$env:NODE_ENV="production" ; node app.js
6 голосов
/ 05 февраля 2017

В OSX я бы порекомендовал добавить export NODE_ENV=development к вашим ~/.bash_profile и / или ~/.bashrc и / или ~/.profile.

Лично я добавляю эту запись в мой ~/.bashrc, а затем ~/.bash_profile ~/.profile импортирую содержимое этого файла, так что это согласованно для всех сред.

После внесения этих изменений обязательно перезапустите терминал, чтобы выбрать настройки.

2 голосов
/ 28 октября 2017

Если вы используете webpack в своем приложении, вы можете просто установить его там, используя DefinePlugin ...

Так что в разделе plugin установите NODE_ENV до production:

plugins: [
  new webpack.DefinePlugin({
    'process.env.NODE_ENV': '"production"',
  })
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...