dans le package.json du nœud, je voudrais réutiliser une commande que j'ai déjà dans un "script".
Voici l'exemple pratique
au lieu de (notez l'extra - w sur le script watch):
"scripts": {
"test" : "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script/register --recursive -R list",
"watch": "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script/register --recursive -R list -w",
}
Je voudrais avoir quelque chose comme
"scripts": {
"test" : "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script/register --recursive -R list",
"watch": "npm run script test" + "-w",
}
qui ne fonctionne pas (ne peut pas faire de chaînes de caractères dans json), mais vous devriez obtenir ce que je voudrais
Je sais que les scripts npm supportent: - & (exécution parallèle) - && (exécution séquentielle)
alors peut-être qu'il y a une autre option?
Cela peut être fait dans [email protected]
. Vous ne spécifiez pas votre système d'exploitation et la version de npm
que vous utilisez, mais à moins que vous n'ayez fait quelque chose pour le mettre à jour, vous exécutez probablement [email protected]
qui ne prend pas en charge la syntaxe ci-dessous.
Sous Linux ou OSX, vous pouvez mettre à jour npm avec Sudo npm install -g npm@latest
. Voir https://github.com/npm/npm/wiki/Troubleshooting#try-the-latest-stable-version-of-npm pour un guide de mise à jour de npm
sur tous plates-formes.
Vous devriez pouvoir le faire en passant un argument supplémentaire à votre script:
"scripts": {
"test": "mocha --compilers coffee:coffee-script/register --recursive -R list",
"watch": "npm run test -- -w"
}
J'ai vérifié cela en utilisant le package.json simplifié suivant:
{
"scripts": { "a": "ls", "b": "npm run a -- -l" }
}
Production:
$ npm run a
> @ a /Users/smikes/src/github/foo
> ls
package.json
$ npm run b
> @ b /Users/smikes/src/github/foo
> npm run a -- -l
> @ a /Users/smikes/src/github/foo
> ls -l
total 8
-rw-r--r-- 1 smikes staff 55 4 Jan 05:34 package.json
$