我有一个如下所示的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
标志,但仍然收到此警告。这是一种警告,我必须忽略吗,或者我应该如何解决这个问题
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" ]
发布于 2021-07-22 12:27:35
有几种方法可以解决这个问题:
npm ci
以确保node_modules
反映锁文件,然后删除package-lock.json
,然后运行npm install
(使用较新版本的npm
)以重新生成package-lock.json
。由于node_modules
中的所有内容都将满足所有要求,因此对npm install
的惟一更改将是一个新生成的package-lock.json
文件。将更新后的package-lock.json
版本提交到存储库/Docker镜像或其他任何位置。npm
降级到较旧的版本。考虑运行npm
版本6,因为它是当前(在撰写本文时)长期支持(LTS) Node.js版本附带的版本。在这个问题中提到的情况下,我想您可以从Docker文件中省略RUN npm -g install npm@7.19.1
,而使用与Docker镜像一起安装的npm
版本(在本例中几乎可以肯定是npm@6
,因为它是Node.js 14.x附带的)。npm
,但想要在旧版本的npm
上运行一个命令,但要保留新版本,则可以使用npx
(随npm
提供)来执行此操作。使用-p
标志指定所需的npm
版本。例如,即使您安装了版本7,npx -p npm@6 npm ci
也会在npm
版本6上运行npm ci
。发布于 2021-07-10 20:39:04
在升级我的npm版本后,我也遇到了同样的问题,它似乎是npm 7.19.1的一个bug,我建议降级到一个旧版本。
您可以在下面查看所有npm版本的https://www.npmjs.com/package/npm?activeTab=versions
在控制台中使用此命令安装所需的版本,并用所需的版本替换"V“:
npm install -g npm@"V"
发布于 2021-07-23 14:59:04
我也有类似的问题,但在构建镜像之前升级机器上的npm npm i -g npm
为我解决了这个问题。您可能仍然会收到警告消息,但映像构建过程不会停止。
https://stackoverflow.com/questions/68260784
复制相似问题