我的main
以这种方式定义的脚本很少。
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
。这是我得到的输出。
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
这里出现错误,因为./node_modules/.bin/standard
参数没有正确传播。
好吧,我的问题不在于linting或standardJs。我想知道如何正确传播参数直到顶级脚本。
答案 0 :(得分:0)
嗯,这就是我在这个问题上出汗后发现的。 (虽然这很愚蠢。)
引起错误不是因为参数没有传播。相反,这是因为standard
中的x = y * z
标记在linting期间不会自动修复分号问题。
在给定的脚本集中(在问题中)。论证成功传播。因此,这是将参数传播到顶级脚本的方式。
答案 1 :(得分:-1)
你的npm脚本中不需要加倍-- --
。
您的lint:fix
脚本应为:"npm run lint --fix"