2020-12-03

Next.js Vercelデプロイ時にエラー should NOT have fewer than 1 properties

VercelでNext.jsのプロジェクトをデプロイしようとした時、デプロイの最後の方で以下のエラーが出て失敗してしまいました。

12:21:15.982    + First Load JS shared by all                                  91.3 kB
12:21:15.982      ├ chunks/commons.d9d755.js                                   13.4 kB
12:21:15.982      ├ chunks/f86bf8ba69955715d1b634ad31a22480e320de24.68b771.js  23 kB
12:21:15.982      ├ chunks/framework.9707fd.js                                 42.1 kB
12:21:15.982      ├ chunks/main.77de94.js                                      6.88 kB
12:21:15.982      ├ chunks/pages/_app.7edfff.js                                5.17 kB
12:21:15.982      ├ chunks/webpack.e06743.js                                   751 B
12:21:15.982      └ css/46d253d9fac8332c1b4f.css                               635 B
12:21:15.982    λ  (Lambda)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
12:21:15.982    ○  (Static)  automatically rendered as static HTML (uses no initial props)
12:21:15.982    ●  (SSG)     automatically generated as static HTML + JSON (uses getStaticProps)
12:21:15.982       (ISR)     incremental static regeneration (uses revalidate in getStaticProps)
12:21:16.063    Done in 17.02s.
12:21:16.412    Uploading build outputs...
12:21:17.241    Error: should NOT have fewer than 1 properties
12:21:19.531    Done with "package.json"

Error: should NOT have fewer than 1 properties とだけ出るので手がかりがなく途方にくれたんですが、設定でおかしな箇所がないか諸々確認していると、next.config.js の以下の部分が原因だとわかりました。

module.exports = {
  i18n: {
    locales: ["en", "ja"],
    defaultLocale: "en",
    domains: []   // ここ
  },
}

プロジェクトを多言語対応した時に、domainsを空配列にしていたのですが、これが原因だったようです。多言語化する際、ロケールは /en/company のようにサブパスで分けることにしたので、ドメインルーティング用のdomainsフィールドは不要で、とりあえず空配列を設定してしまっていたのが問題でした。このdomainsフィールドを削除して再度デプロイしたところエラーがでなくなりました。

もし同じ問題を踏んだ人の参考になれば幸いです。

最終更新: 2020-12-03 06:40
筆者: @gaishimo 主にReact Nativeでのアプリ開発を行っています。
© 2021 Omoidasu, Inc. All rights reserved.