javascript - quick - Una tarea previa para mĂșltiples tareas en package.json
yarn quick start (2)
¿Has intentado gestionarlo directamente usando el nodo?
Puede enlazar los eventos dentro de su package.json directamente a los scripts de nodo y dentro de los scripts de nodo puede ejecutar sus comandos terraform y su código común de esta manera:
var exec = require(''child_process'').exec;
var cmd = ''terraform apply'';
// common code
exec(cmd, function(error, stdout, stderr) {
// command output is in stdout
});
También puede utilizar un solo script de nodo que acepte un parámetro para especificar qué tarea de terraform se debe ejecutar, definir su código común dentro del script y luego ejecutar el comando correcto según el parámetro:
"scripts": {
"tf:apply": "node myscript.js --param=apply",
"tf:plan": "node myscript.js --param=plan"
}
Luego dentro del nodo puedes acceder a tu param de esta manera:
console.log(process.argv.param);
Estoy usando Terraform para un proyecto y tengo dos tareas en mi package.json
para iniciar el terraform plan
terraform apply
y terraform apply
.
"scripts": {
"tf:apply": "terraform apply",
"tf:plan": "terraform plan"
}
Para ambos de estos comandos, necesito realizar primero un terraform get
. Me gustaría tener una sola pretask
para ambos.
Traté de usar:
"scripts": {
"pretf:*": "terraform get",
"tf:apply": "terraform apply",
"tf:plan": "terraform plan"
}
Pero no funciona.
¿Hay alguna forma de lograr esto usando NPM
o Yarn
solamente ? ¿O me veo obligado a escribir exactamente la misma tarea previa para estas dos tareas?
Por lo general voy así:
"scripts": {
"tf:get": "terraform get",
"tf:apply": "npm run tf:get && terraform apply",
"tf:plan": "npm run tf:get && terraform plan"
}
Esta es otra opción que falsifica una especie de prehook "tf:*"
. Solo para ninjas npm
crípticos npm
y no recomendado:
"scripts": {
"pretf": "terraform get",
"tf": "terraform",
"tf:apply": "npm run tf -- apply",
"tf:plan": "npm run tf -- plan"
}
(Úselo con npm run tf:plan
o directamente con cualquier argumento npm run tf -- whathever
)