npm · npm
El mensaje
npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.
Qué significa
npm ci instala estrictamente lo que registra el lockfile, y se detuvo antes de empezar porque package.json pide algo que el lockfile no contiene. Pasa cuando alguien editó package.json a mano o resolvió un conflicto en él sin ejecutar install, o confirmó package.json sin el lockfile al lado. Ejecuta npm install en local una vez para que el lockfile cuadre y luego confirma el lockfile: eso es todo el arreglo. Borrar package-lock.json para salir del paso vuelve a resolver todas las dependencias a versiones más nuevas y cambia en silencio lo que contiene tu compilación.
El arreglo
npm install- Lo imprime
- npm
- npm
- 20
En npm la causa está en la primera línea code XXXX y no en las seis últimas líneas npm ERR!, y cuando el fallo viene del árbol de dependencias o de una compilación nativa y no de tu código, borrar node_modules y reinstalar resuelve la mitad de los casos.
Cómo leer un mensaje de error
- Lee desde la primera línea. Cuanto más abajo, más son las tripas de la herramienta; la causa suele estar arriba.
- Si hay un archivo y un número de línea, empieza ahí: no el marco superior de la pila, sino la línea más alta que nombre un archivo tuyo.
- Busca el mensaje literal, pero quita antes tus rutas y nombres de variables: eso es lo que impide que la búsqueda coincida.
- La misma condición se redacta distinto según la versión. Si los resultados no cuadran, añade el número de versión.
- Antes de pegar un arreglo, comprueba qué descarta. Algunos no se pueden deshacer.
Preguntas frecuentes
Q. ¿Qué significa «npm ERR! npm ci can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync.»?
npm ci instala estrictamente lo que registra el lockfile, y se detuvo antes de empezar porque package.json pide algo que el lockfile no contiene. Pasa cuando alguien editó package.json a mano o resolvió un conflicto en él sin ejecutar install, o confirmó package.json sin el lockfile al lado. Ejecuta npm install en local una vez para que el lockfile cuadre y luego confirma el lockfile: eso es todo el arreglo. Borrar package-lock.json para salir del paso vuelve a resolver todas las dependencias a versiones más nuevas y cambia en silencio lo que contiene tu compilación.
Q. ¿Cómo se arregla?
npm install — antes de ejecutarlo, mira arriba qué descarta este comando.
Q. ¿Qué herramienta lo imprime?
npm. Está en npm y el mensaje tiene 18 palabras.