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