Как установить NODE ENV для производства / разработки в OS X
для использования в express.средах и JS. Есть предложения?
13 ответов
перед запуском вашего приложения, вы можете сделать это в консоли
export NODE_ENV=production
или если вы находитесь в windows, вы можете попробовать следующее:
SET NODE_ENV=production
или вы можете запустить приложение, как это:
NODE_ENV=production node app.js
вы также можете установить его в ваш JS файл:
process.env.NODE_ENV = 'production';
но я не предлагаю делать это в вашем файле времени выполнения, так как нелегко открыть VIM на вашем сервере и изменить его на production. Вы можете сделать конфигурацию.JSON-файл в каталоге и при каждом запуске приложения, он читает из него и устанавливает конфигурацию.
в пакет.в JSON:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
затем запустите в терминале:
npm start
export NODE_ENV=production
- это плохое решение, оно исчезает после перезагрузки.
если вы больше не хотите беспокоиться об этой переменной-добавьте ее в этот файл:
/etc/environment
не используйте синтаксис экспорта, просто напишите (в новой строке, если какой-то контент уже есть):
NODE_ENV=production
он работает после перезагрузки. Вам не придется повторно вводить экспорт NODE_ENV=производство команда больше нигде и просто использовать узел с чем угодно-навсегда, РМ2...
для heroku:
heroku config:set NODE_ENV="production"
что на самом деле по умолчанию.
никто не упомянул .env
здесь еще? Сделайте .env
файл в корневом каталоге приложения, затем require('dotenv').config()
и прочитайте значения. Легко изменяется, легко читается, кросс-платформа.
Это хорошая статья о NODE_ENV:http://www.hacksparrow.com/running-express-js-in-production-mode.html.
для автоматической настройки от Grunt вы можете использовать https://npmjs.org/package/grunt-env плагин.
чтобы не беспокоиться о том, запускаете ли вы свои скрипты в 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"
}
массивный реквизит для разработчиков этого пакета.
на OSX я бы рекомендовал добавить export NODE_ENV=development
на ~/.bash_profile
и/или ~/.bashrc
и/или ~/.profile
.
лично я добавляю эту запись в свой ~/.bashrc
и затем ~/.bash_profile
~/.profile
импортируйте содержимое этого файла, чтобы он был согласован в разных средах.
после внесения этих дополнений, не забудьте перезагрузить терминал, чтобы забрать настройки.
если вы используете webpack в вашем приложении, вы можете просто установить его там, используя DefinePlugin
...
так в вашей , выберите переменной NODE_ENV to production
:
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
})
]
Если вы находитесь в windows. Откройте cmd в правой папке, затем сначала
set node_env={your env name here}
нажмите Enter, затем вы можете начать свой узел с
node app.js
он начнется с вашей настройки env
Даниэль имеет фантастический ответ, который является лучшим подходом для правильного процесса развертывания (set и forget).
для тех, кто использует express. Вы можете использовать grunt-express-server, который также является фантастическим. https://www.npmjs.org/package/grunt-express-server
для тех, кто использует create-react-app на Mac:
"scripts": {
"start": "HTTPS='true' react-scripts-ts start"
}