首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >npm警告旧的锁文件package-lock.json文件是用旧版本的npm创建的

npm警告旧的锁文件package-lock.json文件是用旧版本的npm创建的
EN

Stack Overflow用户
提问于 2021-07-06 02:40:59
回答 7查看 63.7K关注 0票数 53

我有一个如下所示的npm WARN old lockfile The package-lock.json file was created with an old version of npm文件,但在执行RUN npm ci步骤时,出现了一个我无法识别的警告dockerfile文件。

我尝试使用npm install而不是npm ci,添加了--package-lock标志,但仍然收到此警告。这是一种警告,我必须忽略吗,或者我应该如何解决这个问题

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
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" ]
EN

回答 7

Stack Overflow用户

发布于 2021-07-22 12:27:35

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

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

  1. 运行npm ci以确保node_modules反映锁文件,然后删除package-lock.json,然后运行npm install (使用较新版本的npm)以重新生成package-lock.json。由于node_modules中的所有内容都将满足所有要求,因此对npm install的惟一更改将是一个新生成的package-lock.json文件。将更新后的package-lock.json版本提交到存储库/Docker镜像或其他任何位置。

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

  1. 如果您已经安装了某个版本的npm,但想要在旧版本的npm上运行一个命令,但要保留新版本,则可以使用npx (随npm提供)来执行此操作。使用-p标志指定所需的npm版本。例如,即使您安装了版本7,npx -p npm@6 npm ci也会在npm版本6上运行npm ci
票数 48
EN

Stack Overflow用户

发布于 2021-07-10 20:39:04

在升级我的npm版本后,我也遇到了同样的问题,它似乎是npm 7.19.1的一个bug,我建议降级到一个旧版本。

您可以在下面查看所有npm版本的https://www.npmjs.com/package/npm?activeTab=versions

在控制台中使用此命令安装所需的版本,并用所需的版本替换"V“:

代码语言:javascript
运行
复制
 npm install -g npm@"V"
票数 4
EN

Stack Overflow用户

发布于 2021-07-23 14:59:04

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68260784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档