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



для использования в экспресс.средах и JS. Есть предложения?

604   13  

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() и прочитать значения. Легко меняется, легко читается, кросс-платформенный.

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

heroku config:set NODE_ENV="production"

Это хорошая статья о 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"
}

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

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

$env:NODE_ENV="production" ; node app.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

    Ничего не найдено.