2015-01-02 9 views
10

nel nodo package.json Vorrei riutilizzare un comando che ho già in uno 'script'.Nel nodo package.json, richiamare lo script da un altro script con parametro aggiuntivo, in questo caso aggiungere mocha watcher

Ecco l'esempio pratico

invece (si noti l'extra -w sull'orologio sceneggiatura):

"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", 
      } 

Vorrei avere qualcosa di simile

"scripts": { 
      "test" : "./node_modules/mocha/bin/mocha --compilers coffee:coffee-script/register --recursive -R list", 
      "watch": "npm run script test" + "-w", 
      } 

che non funziona (non posso fare concat di stringhe in json), ma dovresti ottenere quello che vorrei

So che il sostegno script NPM: - & (esecuzione parallela) - & & (esecuzione sequenziale)

così forse c'è un'altra opzione?

risposta

15

Questo può essere fatto in [email protected]. Non specifichi il tuo sistema operativo e la versione di npm che stai utilizzando, ma a meno che tu non abbia fatto qualcosa per aggiornarlo, probabilmente stai utilizzando [email protected] che non supporta la seguente sintassi.

Su Linux o OSX è possibile aggiornare npm con sudo npm install -g [email protected]. Vedere https://github.com/npm/npm/wiki/Troubleshooting#try-the-latest-stable-version-of-npm per una guida all'aggiornamento di npm su tutte le piattaforme.

Si dovrebbe essere in grado di fare questo passando un ulteriore argomento per lo script:

"scripts": { "test": "mocha --compilers coffee:coffee-script/register --recursive -R list", "watch": "npm run test -- -w }

ho verificato questo usando il seguente, package.json semplificata:

{ "scripts": { "a": "ls", "b": "npm run a -- -l" } }

Uscita:

$ 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 
$ 
+0

perfetto, grazie. Ecco il commit con la correzione https://github.com/o2platform/fluentnode/commit/a2508df1d295d17ddbea8c7ac6c204d86886409d –

+0

Sono contento che sia stato d'aiuto! –

+0

Mi mancava il "npm run" quando si chiama un altro script da uno script. Grazie! –

Problemi correlati