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