🏧

パッケージマネージャの混在によりnpm ciが出来ずビルド失敗

2024/05/20に公開

自分用メモ

`npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.

エラーの発生原因

  • pnpmとnpmが混在
  • 思考停止Dockerfileのコピペ

Dockerfileの一部
途中でnpm ciして失敗している

COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
RUN \
  if [ -f yarn.lock ]; then yarn --frozen-lockfile; \
  elif [ -f package-lock.json ]; then npm ci; \
  elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \
  else echo "Lockfile not found." && exit 1; \
  fi

npm ciでビルド時と同じ失敗を確認後

npm ci //失敗
rm package-lock.json &&
npm install &&
npm ci //成功

もしこれで成功したらあとはパッケージマネージャを一つにするか
dockerfileを編集しよう。

Discussion