start quick how diferencias dev javascript json npm package.json yarnpkg

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 )