Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What is going on with this article?
@HorikawaTokiya

ビルドすると「Could not freeze ./.nuxt/router.js: Cannot read property 'hash' of undefined」が出る

結論

hardSourceで作成されたキャッシュを消してください。

$ rm -rf node_modules/.cache/hard-source/

解説

ビルドするとこんな感じのエラーが出た

ERROR  [hardsource:a105875d] Could not freeze ./.nuxt/router.js: Cannot read property 'hash' of undefined

nuxt.config.jsで指定したキャッシュ設定が原因

export default {
  build: {
    // ビルド高速化の為にキャッシュしてる
    hardSource: true,
  }
}

キャッシュファイルを削除しよう

ただキャッシュファイルを消すだけ

$ rm -rf node_modules/.cache/hard-source/

よく使うのでpackage.jsonでscript化しておこう

{
    "scripts": {
      "clear-hard-source-cache": "rm -rf node_modules/.cache/hard-source/",
    }
}

こんな感じで使う

$ yarn clear-hard-source-cache

参考

https://github.com/mzgoddard/hard-source-webpack-plugin/issues/416
https://blog.mintsu-dev.com/posts/2019-08-22-nuxtjs-build-performance/

追記 2020/11/12

hardSourceは使わない方がいいかも

hardSourceでキャッシュしてローカルビルドを早くするのは、
公式がベータ版と言っている通り不具合が多くやらない方が良いかも知れません。

もしもローカルのビルド時間が長い場合

  • dockerなどを使っていれば与えるメモリ容量を増やす
  • dockerなどを使わずにローカルのnodeでビルドする
  • バンドルサイズが大きい場合はそもそもの無駄コードを減らす(重複など)
10
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What is going on with this article?