jakub.g的答案是正確的,但是使用grunt的例子看起來有點複雜。
所以我的答案更簡單:
- 發送一個命令行參數的NPM腳本
語法發送命令行參數的NPM腳本:
npm run [command] [-- <args>]
試想一下,我們有在我們的package.json啓動webpack dev服務器的npm啓動任務:
"scripts": {
"start": "webpack-dev-server --port 5000"
},
我們從npm start
在命令行中運行這個現在,如果我們想在一個端口傳遞給故宮腳本:
"scripts": {
"start": "webpack-dev-server --port process.env.port || 8080"
},
運行這一點,例如通過該端口5000通過命令行是如下:
npm start --port:5000
- 使用的package.json配置:
正如jakub.g提到的,你可以在你的包的配置或者設置PARAMS以.json
"config": {
"myPort": "5000"
}
"scripts": {
"start": "webpack-dev-server --port process.env.npm_package_config_myPort || 8080"
},
npm start
會使用在你的配置中指定的端口,或者你可以overri德它
npm config set myPackage:myPort 3000
- 在您的NPM腳本設置設置了一個param
在你的NPM腳本讀取一個變量的表率。在這個例子中NODE_ENV
"scripts": {
"start:prod": "NODE_ENV=prod node server.js",
"start:dev": "NODE_ENV=dev node server.js"
},
在server.js要麼督促或開發閱讀NODE_ENV
var env = process.env.NODE_ENV || 'prod'
if(env === 'dev'){
var app = require("./serverDev.js");
} else {
var app = require("./serverProd.js");
}
這也與像'yargs'包工作完美地結合在一起; '--'後的所有參數都可以在腳本中完美分析。 – Thomas 2016-05-10 08:58:03
AFAIKS,這隻能將參數添加到腳本的末尾。如果在中間需要參數,該怎麼辦? – Spock 2016-08-23 16:28:59
@Spock你有什麼意思嗎? – 2016-08-24 07:29:53