Ответ jakub.g верен, однако пример использования grunt кажется немного сложным.
Итак, мой более простой ответ:
- Отправка аргумент командной строки для сценария npm
Синтаксис для отправки аргументов командной строки в сценарий npm:
npm run [command] [-- <args>]
Представьте, что у нас есть задача запуска npm в нашем пакете. json to kick off webpack dev server:
"scripts": {
"start": "webpack-dev-server --port 5000"
},
Мы запускаем это из командной строки с помощью npm start
Теперь, если мы хотим передать порт в сценарий npm:
"scripts": {
"start": "webpack-dev-server --port process.env.port || 8080"
},
запускает это и передает порт, например 5000 через командную строку будет выглядеть следующим образом:
npm start --port:5000
- Использование package.json config:
Как упоминалось jakub.g , вы можете альтернативно set params в config вашего package.json
"config": {
"myPort": "5000"
}
"scripts": {
"start": "webpack-dev-server --port process.env.npm_package_config_myPort || 8080"
},
npm start
будет использовать порт, указанный в вашей конфигурации, или, альтернативно, вы можете отменить его
npm config set myPackage:myPort 3000
- Установка параметра в вашем сценарии npm
Пример чтения переменной, установленной в вашем сценарии npm. В этом примере NODE_ENV
"scripts": {
"start:prod": "NODE_ENV=prod node server.js",
"start:dev": "NODE_ENV=dev node server.js"
},
прочитайте NODE_ENV в server.js либо prod , либо dev
var env = process.env.NODE_ENV || 'prod'
if(env === 'dev'){
var app = require("./serverDev.js");
} else {
var app = require("./serverProd.js");
}