jakub.g's Antwort ist korrekt, jedoch erscheint ein Beispiel mit Grunt etwas komplex.
Also meine einfachere Antwort:
- Übermitteln eines Befehlszeilenarguments an ein npm-Skript
Syntax zum Übermitteln von Befehlszeilenargumenten an ein npm-Skript:
npm run [Befehl] [-- ]
Stellen wir uns vor, wir haben eine npm start-Aufgabe in unserer package.json, um den Webpack Dev Server zu starten:
"scripts": {
"start": "webpack-dev-server --port 5000"
},
Wir führen dies von der Befehlszeile aus mit npm start
aus
Jetzt, wenn wir einen Port an das npm-Skript übergeben möchten:
"scripts": {
"start": "webpack-dev-server --port process.env.port || 8080"
},
Dies auszuführen und den Port z.B. 5000 über die Befehlszeile zu übergeben, würde wie folgt aussehen:
npm start --port:5000
- Verwendung der package.json-Konfiguration:
Wie von jakub.g erwähnt, können Sie alternativ Parameter in der Konfiguration Ihrer package.json festlegen
"config": {
"myPort": "5000"
}
"scripts": {
"start": "webpack-dev-server --port process.env.npm_package_config_myPort || 8080"
},
npm start
wird den im Konfigurationsabschnitt festgelegten Port verwenden, oder alternativ können Sie diesen überschreiben
npm config set myPackage:myPort 3000
- Festlegen eines Parameters in Ihrem npm-Skript
Ein Beispiel zum Lesen einer in Ihrem npm-Skript festgelegten Variable. In diesem Beispiel NODE_ENV
"scripts": {
"start:prod": "NODE_ENV=prod node server.js",
"start:dev": "NODE_ENV=dev node server.js"
},
lesen Sie NODE_ENV in server.js entweder prod oder dev
var env = process.env.NODE_ENV || 'prod'
if(env === 'dev'){
var app = require("./serverDev.js");
} else {
var app = require("./serverProd.js");
}