github actionsで `Error: Cannot find module @rollup/rollup-linux-x64-gnu.` がでる


astroのビルドをgithub actionsで行うときにでてきたエラー エラーメッセージから察せるが、npm installした(package-lock.jsonを生成した)OSとbuild時のOSが異なると発生する

結論

npm install @rollup/rollup-linux-x64-gnu --save-optional

してpackage.json package-lock.jsonを更新するといい

環境

viteの依存パッケージのようなので

  • macOS: 14.1.2
  • node: 20
  • npm: 10.7.0
  • astro: 5.13.2
  • vite: 6.3.5
  • rollup: 4.34.9
 Error: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try `npm i` again after removing both package-lock.json and node_modules directory.
 ...

package-lock.jsonにOS依存のpackageが含まれていないことが問題らしい ↓によるとnpm 11.3.0で修正されたとのこと、もしかしたらnodeのバージョンに24を指定するのでも解決しそう

https://github.com/vitejs/vite/discussions/15532#discussioncomment-13168240

nodeとnpmのバージョン対応表は以下 https://nodejs.org/en/about/previous-releases

参考