提问者:小点点

npm WARN旧锁定文件package-lock.json文件是用旧版本的npm创建的


我有一个 dockerfile 如下,但在 RUN npm ci 步骤中,有一个警告,

npm WARN旧锁定文件package-lock.json文件是用旧版本的npm创建的

我无法弄清楚…

我尝试使用npm-install而不是npm-ci,并添加了--package-lock标志,但仍收到此警告。这是一种警告,我必须忽视它,或者我应该怎么做才能解决这个问题?

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 lockfile

这是我的档案。

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" ]

共3个答案

匿名用户

有几种方法可以解决这个问题:

>

  • 忽略它。这只是一个警告,不影响模块的安装。

    运行npm install--Package-lock-Only(使用较新版本的npm)以重新生成package-lock.json。将更新版本的package-lock.json提交到repo/Docker镜像或其他任何东西。

    npm降级到生产中的旧版本。考虑运行npmversion 6,因为这是当前(撰写本文时)长期支持(LTS)版本的Node.js.在这个问题中被问到的情况下,我想你可以从Dockerfile中省略RUN npm-g installnpm@7.19.1,而是使用与Docker映像一起安装的npm版本(在这种情况下几乎肯定是npm@6,因为这是Node.js14. x附带的版本)。

    如果您已经安装了某个版本的< code>npm,但想要使用较旧版本的< code>npm运行一个命令,但保留较新的版本,则可以使用< code>npx(随< code>npm提供)来实现这一目的。例如,< code>npx npm@6 ci将运行< code>npm版本6的< code>npm ci,即使您安装了版本7。

  • 匿名用户

    一个简单的解决方案是使用 NVM 来管理节点版本。特别是在 Linux 上,这节省了很多文件权限、在不同环境中开发等方面的麻烦。NPM 在他们的文档中推荐这一点 此处.

    这个错误对我来说是通过用nvm切换Node.js版本来解决的,

    nvm install 14
    nvm use 14
    

    如果遇到奇怪的Node.js或npm问题,尝试切换到稍旧或较新的Node.jss版本总是很容易的。

    匿名用户

    我也遇到过类似的问题,但是在构建映像之前升级我的机器上的npm npm i -g npm为我解决了这个问题。您可能仍然会收到警告消息,但映像构建过程不会暂停。