13 ответов:
перед запуском приложения, вы можете сделать это в консоли,
export NODE_ENV=productionили если вы находитесь в windows, вы можете попробовать это:
SET NODE_ENV=productionили вы можете запустить приложение, как это:
NODE_ENV=production node app.jsвы также можете установить его в свой файл js:
process.env.NODE_ENV = 'production';но я не предлагаю делать это в вашем файле времени выполнения, так как нелегко открыть VIM на вашем сервере и изменить его на производство. Вы можете сделать конфиг.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 до
production:plugins: [ new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"', }) ]
Если вы находитесь на Windows. Откройте cmd в правой папке, а затем сначала
set node_env={your env name here}нажмите enter, то вы можете начать свой узел с
node app.jsон начнется с вашего env настройки
Даниэль имеет фантастический ответ, который является лучшим подходом для правильного развертывания (установить и забыть) процесс.
для тех, кто использует экспресс. Вы можете использовать grunt-express-сервер, который также является фантастическим. https://www.npmjs.org/package/grunt-express-server
для тех, кто использует create-react-app на Mac:
"scripts": { "start": "HTTPS='true' react-scripts-ts start" }
Comments