npm WARN old lockfile package-lock.json 文件是使用旧版本的 npm 创建的

新手上路,请多包涵

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

npm WARN old lockfile 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

这是我的 Dockerfile

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

原文由 semural 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 5.7k
1 个回答

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

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

  2. 运行 npm install --package-lock-only (使用较新版本的 npm )重新生成 package-lock.json 。将 package-lock.json 的更新版本提交到 repo/Docker 映像或其他任何内容。

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

  4. 如果您已经安装了 npm 的一个版本,但想使用旧版本的 npm 运行一个命令,但要保留较新的版本,则可以使用 npx (附带 npm )来做到这一点。例如, npx npm@6 ci 将运行 npm cinpm 版本6,即使你安装了版本7。

原文由 Trott 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题