Skip to content

Commit 9c641ae

Browse files
committed
fix(docker): COPY web/.npmrc,避免 frozen-lockfile 配置不一致
auto-install-peers=false 写在 .npmrc 里,镜像构建只 COPY 了 package.json / pnpm-lock.yaml / pnpm-workspace.yaml,容器内 pnpm 退回默认 autoInstallPeers=true, 与 lockfile 的 settings.autoInstallPeers: false 不匹配,直接报 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH。
1 parent c53ba4b commit 9c641ae

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

‎Dockerfile‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ FROM node:26-alpine AS web
33
WORKDIR /web
44
# pnpm-workspace.yaml 必须一起 COPY:pnpm 从这里读 allowBuilds(放行 esbuild
55
# 的 postinstall),缺失会以 ERR_PNPM_IGNORED_BUILDS 退出。
6-
COPY web/package.json web/pnpm-lock.yaml web/pnpm-workspace.yaml ./
6+
# .npmrc 同理必须带上:里面有 auto-install-peers=false,与 lockfile 的
7+
# settings.autoInstallPeers 必须一致,否则 --frozen-lockfile 直接报
8+
# ERR_PNPM_LOCKFILE_CONFIG_MISMATCH。
9+
COPY web/package.json web/pnpm-lock.yaml web/pnpm-workspace.yaml web/.npmrc ./
710
# Node 25 起不再内置 corepack,裸 `corepack enable` 会 exit 127(command not found);
811
# 先用 npm 装一份再 enable。0.34.x 与 pnpm 11+ 不兼容,固定到 0.36.0。
912
RUN npm install -g corepack@0.36.0 && corepack enable && pnpm install --frozen-lockfile

0 commit comments

Comments
 (0)