Mon package.json
a peu de scripts définis de cette manière.Comment propager des arguments de ligne de commande de script npm?
{
"name": "project",
"scripts": {
"standard": "./node_modules/.bin/standard",
"lint": "npm run standard",
"lint:fix": "npm run lint -- --fix"
}
}
Quand j'exécute $ npm run lint:fix
je trouve que l'argument --fix
ne se propage pas à ./node_modules/.bin/standard
. C'est la sortie que je reçois.
bash-3.2$ npm run lint:fix > [email protected] lint:fix /path/to/my/project > npm run lint -- --fix > [email protected] lint /path/to/my/project > npm run standard "--fix" > [email protected] 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
Ici il y a une erreur, car l'argument --fix
ne propagea pas correctement.
Eh bien, ma question ne concerne pas le linting ou le standardJs. Je voudrais savoir comment propager les arguments correctement jusqu'au script de niveau supérieur.
Salut @edwarddamato, je pense que le double '- --' est requis. Coz, le premier ensemble de traits d'union est le séparateur entre la commande de script npm et les arguments (qui doivent être passés au script) tandis que le second ensemble est l'argument lui-même. – Goje87