scripts run pass parameter node node.js parameters npm arguments

node.js - run - npm scripts parameters



Pasando argumentos al script npm en package.json (1)

Pasando argumentos al guión

Para pasar argumentos al script npm , debe proporcionarlos después de la seguridad.

En su caso, -- se puede omitir. Se comportan de la misma manera:

npm run test -- 8080 production npm run test 8080 production

Pero cuando los argumentos contienen opciones (por ejemplo, -p ), -- es necesario, de lo contrario, npm los analizará y los tratará como una opción de npm.

npm run test -- 8080 -p

Utilizar parámetros posicionales.

Los argumentos se adjuntan al script que se ejecutará. Tu $1 $2 no será resuelto. El comando que realmente ejecuta npm es:

node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet "8080" "production"

Para hacer que la variable de posición funcione en el script npm, ajuste el comando dentro de una función de shell:

"scripts": { "test": "run(){ node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet; }; run" }

O use la herramienta scripty y coloque su script en un archivo individual.

paquete.json :

"scripts": { "test": "scripty" }

scripts / prueba :

#!/usr/bin/env sh node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet

¿Hay una manera de pasar argumentos dentro del comando package.json?

Mi guion:

"scripts": { "test": "node mytest.js $1 $2 | node_modules/tap-difflet/bin/tap-difflet" }

cli npm run test 8080 production

Luego, en mytest.js me gustaría obtener los argumentos con process.argv