Javascript 如何传播npm脚本命令行参数?
我的Javascript 如何传播npm脚本命令行参数?,javascript,node.js,npm,npm-scripts,Javascript,Node.js,Npm,Npm Scripts,我的package.json几乎没有以这种方式定义的脚本 { "name": "project", "scripts": { "standard": "./node_modules/.bin/standard", "lint": "npm run standard", "lint:fix": "npm run lint -- --fix" } } 当我执行$npm run lint:fix时,我发现参数--fix没有传播到/node\u modules/.b
package.json
几乎没有以这种方式定义的脚本
{
"name": "project",
"scripts": {
"standard": "./node_modules/.bin/standard",
"lint": "npm run standard",
"lint:fix": "npm run lint -- --fix"
}
}
当我执行$npm run lint:fix
时,我发现参数--fix
没有传播到/node\u modules/.bin/standard
。这是我得到的输出
bash-3.2$ npm run lint:fix
> project@0.0.1 lint:fix /path/to/my/project
> npm run lint -- --fix
> project@0.0.1 lint /path/to/my/project
> npm run standard "--fix"
> project@0.0.1 standard /path/to/my/project
> standard
standard: Use JavaScript Standard Style (http://standardjs.com)
standard: Run `standard --fix` to automatically fix some problems.
/path/to/my/project/data/someFile.js:38:34: Extra semicolon.
npm ERR! Darwin 16.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "standard" "--fix"
npm ERR! node v6.9.4
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
bash-3.2$npm运行lint:fix
> project@0.0.1lint:fix/path/to/my/project
>npm运行皮棉----修复
> project@0.0.1lint/path/to/my/project
>npm运行标准--“修复”
> project@0.0.1标准/路径/到/我的/项目
>标准
标准:使用JavaScript标准样式(http://standardjs.com)
标准:运行'standard--fix'自动修复一些问题。
/path/to/my/project/data/someFile.js:38:34:额外分号。
npm错误!达尔文16.0.0
npm错误!argv“/usr/local/bin/node”“/usr/local/bin/npm”“运行”“标准”“--修复”
npm错误!节点v6.9.4
npm错误!npm v3.10.10
npm错误!代码失效循环
这里有一个错误,因为--fix
参数没有正确传播
我的问题不是关于linting或standardJs。我想知道如何使参数正确传播到顶级脚本。在npm脚本中不需要双
--
你的
lint:fix
脚本应该是:“npm run lint--fix”
好吧,这就是我在这个问题上费了很大劲后发现的。(不过这很傻)
错误不是因为参数未传播而导致的。相反,这是因为standard
中的--fix
标志不能自动修复linting期间的分号问题
在给定的脚本集合中(在问题中)。该参数已成功传播。因此,这是将参数传播到顶层脚本的方法。Hi@edwarddamato,我认为需要双
-->
。因为,第一组连字符是npm脚本命令和参数(需要传递给脚本)之间的分隔符,而第二组是参数本身。