415 Stimmen

Wie man NODE_ENV in OS X auf Produktion/Entwicklung setzt

Zur Verwendung in express.js-Umgebungen. Irgendwelche Vorschläge?

827voto

Farid Nouri Neshat Punkte 28188

Bevor Sie Ihre Anwendung ausführen, können Sie dies in der Konsole tun,

export NODE_ENV=production

Wenn Sie unter Windows arbeiten, können Sie auch dies versuchen:

SET NODE_ENV=production

für PowerShell:

$env:NODE_ENV="production"

oder Sie können Ihre Anwendung wie folgt ausführen:

NODE_ENV=production node app.js

Sie können es auch in Ihrer js-Datei einstellen:

process.env.NODE_ENV = 'production';

Aber ich schlage nicht vor, dies in Ihrer Laufzeitdatei zu tun, da es nicht einfach ist, VIM auf Ihrem Server zu öffnen und es auf Produktion zu ändern. Sie können eine config.json-Datei in Ihrem Verzeichnis erstellen und jedes Mal, wenn Ihre Anwendung läuft, liest sie daraus und setzt die Konfiguration.

137voto

wangchi Punkte 2835

In package.json:

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

dann im Terminal ausführen:

npm start

105voto

theflowersoftime Punkte 2395

Keiner erwähnt .env schon hier drin? Mach eine .env Datei im Root Ihrer Anwendung, dann require('dotenv').config() und lesen Sie die Werte ab. Leicht zu ändern, leicht zu lesen, plattformübergreifend.

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

56voto

Lukas Liesis Punkte 20911

export NODE_ENV=production ist eine schlechte Lösung, sie verschwindet nach dem Neustart.

wenn Sie sich nicht mehr um diese Variable kümmern wollen - fügen Sie sie zu dieser Datei hinzu:

/etc/environment

Verwenden Sie keine Export-Syntax, sondern schreiben Sie einfach (in eine neue Zeile, wenn bereits ein Inhalt vorhanden ist):

NODE_ENV=production

nach dem Neustart funktioniert es. Sie müssen nicht erneut eingeben export NODE_ENV=Produktion und verwenden Sie node einfach mit allem, was Sie möchten - forever, pm2...

Für heroku:

heroku config:set NODE_ENV="production"

was eigentlich Standard ist.

43voto

Notorious Punkte 2867

Damit Sie sich keine Gedanken darüber machen müssen, ob Sie Ihre Skripte unter Windows, Mac oder Linux ausführen, installieren Sie das übergreifend Paket. Dann können Sie Ihre Skripte einfach verwenden, etwa so:

"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"
}

Ein großes Lob an die Entwickler dieses Pakets.

npm install --save-dev cross-env

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X