結論
ないなら追加すれば良い。ただし dependencies や devDependencies ではなく optionalDependencies として @rollup/rollup-darwin-x64 を追加すべき。 具体的にpackage.jsonに追加すべき項目を書くと、下記のようになる。
package.json
"optionalDependencies": {
"@rollup/rollup-linux-x64-gnu": "4.9.1"
}
するとAmplify Gen2 + Nuxt3 のビルドが通って、無事にデプロイできるようになる。
解説:なぜ optionalDependencies として追加すべきなのか
- Rollup のネイティブバイナリはOSごとに異なる
- だから、環境を統一するか、環境差異を許容できるようにしないとエラーになる
- そこで optionalDependencies の登場。optionalDependencies は dependencies や devDependencies と異なり、インストールに失敗してもエラーとならずスキップされる
- これにより今回のRollupバイナリのような 「特定の環境下でのみインストールされてほしい」 「他の環境では互換性の問題でインストールできないのでスキップされてほしい」 という課題を解決してくれる