javascript - node - npm
Yarn: procedimiento para volver a implementar las dependencias de JavaScript en el servidor de producción(uso del archivo `yarn.lock`) (2)
Sinceramente, esta es una cuestión de opinión / preferencia. He visto algunas estrategias:
- Utilizando
yarn upgrade - Realizando manualmente la versión en
package.jsonantes de ejecutar elyarn
- Utilizando
Como mencionó Fabien: usar la
yarn checkPuede usar los espejos fuera de línea sin hilos donde confirma los cachés de sus paquetes npm en el control de versiones. (Ver this artículo mediano)
Además, hay un montón de ventajas cuando se utiliza
yarn --offline-yarn --offline:- Las compilaciones son más rápidas porque no tiene que obtener paquetes del registro de npm.
- Sus compilaciones fallarán si no tiene las dependencias correctas.
He leído la documentación en Yarn, y sé que el archivo de lock debe estar comprometido con VC. ¡Vea this y explique en un alto nivel por qué es necesario el archivo de bloqueo, y this enumera un montón de comandos sin mucha explicación de lo que realmente hacen!
También he leído muchas preguntas en StackOverflow que preguntan si el archivo de lock debe confirmarse en VC.
Sin embargo, toda la documentación y los subprocesos SO parecen pasar por alto los detalles que quiero saber, que son los siguientes; ¿Cuál es el procedimiento correcto (el grupo correcto de comandos a ejecutar) para:
- Actualizar el archivo
yarn.lockcuando lo necesito (es decir, en el entorno de desarrollo donde deseo extraer las últimas versiones secundarias y actualizar el archivo delockpara reflejar esto) - Para mantener mi archivo de bloqueo sincronizado con otros desarrolladores para garantizar que se están desarrollando / probando desde las mismas versiones de dependencia, y
- Para actualizar / volver a sincronizar el directorio
node_modulesen el servidor de producción (es decir, para asegurarse de que el servidor de producción no se ejecute en una versión diferente o de última hora de los paquetes dependientes)
Le pregunto en parte porque en el pasado, mientras realizaba un git pull en el servidor, me encontré con mensajes que me dicen que el archivo yarn.lock se ha actualizado independientemente del proceso de desarrollo / VC. En lo que a mí respecta, esto nunca debe permitirse que suceda.
La siguiente información se basa en lo que usamos diariamente en Orange, esto puede no ser la única verdad.
1) Actualizando yarn.lock
yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]
Este comando actualiza las dependencias a su última versión en función del rango de versiones especificado en el archivo package.json . El archivo yarn.lock también será recreado.
fuente: https://yarnpkg.com/en/docs/cli/upgrade
2) Dependencia entre desarrolladores.
Lo que sugiero que haga es crear un script que verifique la versión actual "recomendada" para tener con la ayuda de:
yarn check
Verifica que las versiones de las dependencias del paquete en el package.json del proyecto actual coincidan con las del archivo de bloqueo del hilo.
fuente: https://yarnpkg.com/en/docs/cli/check
3) Actualización de la producción del servidor.
Lo mismo que 2) usando un script de git hook, debería ayudarlo a yarn check si la versión package.json es correcta si no inicia una yarn update .