Tengo un dockerfile como se muestra a continuación, pero durante el paso RUN npm ci , hay una advertencia,
npm WARN old lockfile El archivo package-lock.json se creó con una versión anterior de npm
que no puedo descifrar..
Probé con npm install en lugar de npm ci y agregué el --package-lock , pero sigo recibiendo esta advertencia. Es una especie de advertencia de que tengo que ignorarlo o ¿qué debo hacer para solucionar esto?
Step 12/26 : RUN npm ci --production --package-lock && npm ci --production --package-lock --prefix ./ui-runner ---> Running in 3473c209b98c npm WARN old lockfile npm WARN old lockfile The package-lock.json file was created with an old version of npm, npm WARN old lockfile so supplemental metadata must be fetched from the registry. npm WARN old lockfile npm WARN old lockfile This is a one-time fix-up, please be patient... npm WARN old lockfileAquí está mi archivo Docker .
FROM node:14.17.1-alpine3.13 AS builder WORKDIR /usr/src/app COPY package.json package-lock.json* ./ COPY ui-runner/package*.json ./ui-runner/ COPY .npmrc .npmrc COPY ui-runner/.npmrc ./ui-runner/.npmrc RUN npm -g install npm@7.19.1 RUN npm ci --production --package-lock && \ npm ci --production --package-lock --prefix ./ui-runner RUN rm -f .npmrc && \ rm -f ui-runner/.npmrc FROM node:14.17.1-alpine3.13 WORKDIR /usr/src/app RUN apk update && apk add --no-cache curl bash RUN addgroup -g 1001 test && \ adduser -S -u 1001 -G test test RUN chown -R test /usr/src/app && \ chmod 755 /usr/src/app COPY --from=builder /usr/src/app /usr/src/app COPY . . RUN npm run build:docker USER test EXPOSE 3000 9183 CMD [ "npm", "run", "start:ui-runner" ]Hay varias formas de lidiar con esto:
Ignoralo. Es solo una advertencia y no afecta la instalación de módulos.
Ejecute npm install --package-lock-only (con la versión más reciente de npm ) para regenerar un package-lock.json . Confirme la versión actualizada de package-lock.json en la imagen repo/Docker o lo que sea.
npm a una versión anterior en producción. Considere ejecutar la versión 6 de npm , ya que es lo que se incluye con la versión actual (en el momento de escribir este artículo) de soporte a largo plazo (LTS) de Node.js. En el caso que se le pregunta en esta pregunta, imagino que puede omitir RUN npm -g install npm@7.19.1 del Dockerfile y, en su lugar, usar la versión de npm que está instalada con la imagen de Docker (que en este caso seguramente será npm@6 ya que eso es lo que viene con Node.js 14.x).
Si ya tiene una versión de npm instalada pero desea ejecutar un comando con una versión anterior de npm pero, por lo demás, conserva la versión más nueva, puede usar npx (que se envía con npm ) para hacerlo. Por ejemplo, npx npm@6 ci ejecutaría npm ci con la versión 6 de npm incluso si tiene instalada la versión 7.
Tuve un problema similar, pero la actualización de npm npm i -g npm en mi máquina antes de crear la imagen me lo resolvió. Es posible que aún reciba el mensaje de advertencia, pero el proceso de creación de la imagen no se detendrá.
También tengo el mismo problema después de actualizar mi versión de npm. Parece un error de npm 7.19.1, y sugeriría cambiar a una versión anterior.
Puede consultar a continuación todas las versiones de npm
https://www.npmjs.com/package/npm?activeTab=versiones
Instale la versión deseada con este comando en la consola y sustituya "V" con su versión deseada:
npm install -g npm@"V"