it-roy-ru.com

Как настроить NODE_ENV для производства / разработки в OS X

Для использования в средах express.js. Какие-либо предложения?

284
Mark Gia Bao Nguyen

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

export NODE_ENV=production

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

SET NODE_ENV=production

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

NODE_ENV=production node app.js

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

process.env.NODE_ENV = 'production';

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

606
Farid Nouri Neshat

в package.json:

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

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

npm start
88
wangchi

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

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

50
Thomas McCabe

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

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

/etc/environment

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

NODE_ENV=production

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

за героку :

heroku config:set NODE_ENV="production"

который на самом деле по умолчанию.

42
Lukas

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

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

21
Daniel Steigerwald
heroku config:set NODE_ENV="production"
21
david_adler

Чтобы не беспокоиться о том, выполняете ли вы свои сценарии в 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"
}

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

13
Notorious

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

$env:NODE_ENV="production" ; node app.js
8
Harikrishnan

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

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

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

6
Vincil Bishop

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

Поэтому в разделе plugin установите для NODE_ENV значение production:

plugins: [
  new webpack.DefinePlugin({
    'process.env.NODE_ENV': '"production"',
  })
]
2
Alireza

Если вы находитесь на окнах. Откройте ваш cmd в правой папке, затем сначала

set node_env={your env name here}

нажмите Enter, тогда вы можете начать свой узел с

node app.js

это начнется с вашей настройки env

1
garenyondem

У Даниэля есть фантастический ответ, который является лучшим подходом для правильного процесса развертывания (установить и забыть).

Для тех, кто использует экспресс. Вы можете использовать Grunt-Express-сервер, который также является фантастическим. https://www.npmjs.org/package/grunt-express-server

0
Jesse