Error: Cannot find module '@rollup/rollup-linux-x64-gnu'

目次

npmの依存関係をアップデートしていたときに、ローカル(macbook pro 2019)ではビルドが通るのに、GitHub Actionsではビルドが通らないという問題が発生した。

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.
...
[cause]: Error: Cannot find module '@rollup/rollup-linux-x64-gnu'
...

https://github.com/shiomiyan/blog/actions/runs/14482057130/job/40620848586

使用していたGitHub ActionsはLinux環境なので、@rollup/rollup-linux-x64-gnuが必要になる。対して(macOS上で生成した)package-lock.jsonには@rollup/rollup-darwin-x64記載されていた。 GitHub Actionsではnpm ciを使って依存関係を取得しているので、このあたりで依存解決に失敗したのかな、と思った。

解決策

rollupでプラットフォーム向けのネイティブバイナリを使っていると起きる問題らしい。クロスプラットフォームで使える@rollup/wasm-nodeがあり、これを使うと解決する。

{
  ...
  "overrides": {
    "rollup": "npm:@rollup/wasm-node@^4.40.0"
  }
  ...
}

とりあえずビルドが通るようになった。定期的に発生していた気もするので、これでしばらく様子を見る。

参考