Me gustaría agregar un comando al script de "inicio", de modo que cuando haga npm start , lo primero que se ejecutará es npm install .
Mi paquete.json tiene el siguiente aspecto:
. . "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "DEBUG=my-app node src/index.js", "dev": "nodemon src/index.js" }, . . . Pensé en agregar npm install dentro del script de start :
"start": "npm install DEBUG=my-app node src/index.js",Pero esto no funciona, así que me gustaría recibir una sugerencia, si es posible.
Creo que solo usas el conector &&. me gusta:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "npm install && DEBUG=my-app node src/index.js", "dev": "nodemon src/index.js" }Andy, sí, mi aplicación debe implementarse una vez con un solo comando.
Este es un comienzo bastante pesado/lento, instalando todos los módulos antes de iniciar la aplicación.
Eso significa que si cambio el código en algún lugar de mi servidor de nodos, detengo el proceso y lo ejecuto nuevamente, se realizará una instalación completa. Me doy cuenta de que tienes un script de desarrollo con nodemon, pero aún así.
Otro caso: si su aplicación falla en el servidor en vivo y necesita iniciarla nuevamente, se realizará una instalación completa. Qué sucede si un módulo ha subido un parche o una versión menor. Eso significa que iniciará un proyecto con diferentes dependencias.
Si está haciendo esto en el ci/cd, entonces una canalización generalmente se divide:
Lo que tal vez haría es tener un script llamado "tubería" o algo así, y luego llamarlo así.
"pipeline": npm ci && npm run build && npm test && npm prune && npm startEsta secuencia de comandos luego se llamaría en su código de canalización.