web-dev-qa-db-fra.com

Dans node package.json, appelez le script d'un autre script avec un paramètre supplémentaire, dans ce cas, ajoutez mocha watcher

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?

35
Dinis Cruz

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
$ 
52
Sam Mikes