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