質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.57%

Nuxt.jsのhardsourceエラーを解決したい。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,210

toshihirokato

score 15

前提・実現したいこと

Nuxt.jsのビルドスピードを上げるために、hard-source-webpack-pluginをインストールしたが、
ターミナルにて以下のエラーが発生したので解決したいです。

発生している問題・エラーメッセージ

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

該当のソースコード

import colors from 'vuetify/es5/util/colors'
// import webpack from 'webpack'
// import NuxtConfiguration from '@nuxt/config'

// const config: NuxtConfiguration = {
//   build: {
//     extend(config, ctx) {
//       config.externals = {
//         moment: 'moment'
//       }
//     }
//   }
// }

// export default config

export default {
  mode: 'spa',
  srcDir: 'app',
  /*
  ** Headers of the page
  */
  head: {
    script: [
    ],
    titleTemplate: '%s - ' + process.env.npm_package_name,
    title: process.env.npm_package_name || '',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ]
  },
  /*
  ** Customize the progress-bar color
  */
  loading: { color: '#fff' },
  /*
  ** Global CSS
  */
  css: [
  ],
  /*
  ** Plugins to load before mounting the App
  */
  plugins: [
    '~/plugins/firebase'
  ],
  /*
  ** Nuxt.js dev-modules
  */
  buildModules: [
    // Doc: https://github.com/nuxt-community/eslint-module
    '@nuxtjs/eslint-module',
    '@nuxtjs/vuetify'
  ],
  /*
  ** Nuxt.js modules
  */
  modules: [
    // Doc: https://axios.nuxtjs.org/usage
    '@nuxtjs/axios'
  ],
  /*
  ** Axios module configuration
  ** See https://axios.nuxtjs.org/options
  */
  axios: {
  },
  /*
  ** vuetify module configuration
  ** https://github.com/nuxt-community/vuetify-module
  */
  vuetify: {
    customVariables: ['~/assets/variables.scss'],
    theme: {
      dark: false,
      themes: {
        light: {
          primary: colors.purple,
          secondary: colors.grey.darken1,
          accent: colors.shades.black,
          error: colors.red.accent3
        },
        dark: {
          primary: colors.blue.darken2,
          accent: colors.grey.darken3,
          secondary: colors.amber.darken3,
          info: colors.teal.lighten1,
          warning: colors.amber.base,
          error: colors.deepOrange.accent4,
          success: colors.green.accent3
        }
      }
    }
  },
  /*
  ** Build configuration
  */
  build: {
    publishPath: [
    ],
    vendeer: ['moment'],
    analyze: false,
    /*
    ** You can extend webpack config here
    */
    extend (config, ctx) {
      const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
      config.plugins.push(new HardSourceWebpackPlugin())

      config.externals = {
        moment: 'moment'
      }
    }
  }
}

試したこと

こちらのgithub.comを参考に、node_modules/.cacheを削除してyarn run devを実行しましたが、解決しませんでした。

また、こちらの記事を参考に、webpackをアップデートしようとしましたが、これ以上アップデートできず解決に至りませんでした。

補足情報(FW/ツールのバージョンなど)

{
  "name": "",
  "version": "1.0.0",
  "description": "My epic Nuxt.js project",
  "author": "",
  "private": true,
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore ."
  },
  "dependencies": {
    "@nuxtjs/axios": "^5.8.0",
    "analyze": "^0.0.14",
    "chart.js": "^2.9.3",
    "config": "^3.2.4",
    "eslint-plugin-import": "^2.19.1",
    "eslint-plugin-vue": "^6.1.2",
    "eslint-scope": "^5.0.0",
    "firebase": "^7.6.0",
    "hard-source-webpack-plugin": "^0.13.1",
    "latest": "^0.2.0",
    "nuxt": "^2.10.2",
    "stylus": "^0.54.7",
    "stylus-loader": "^3.0.2",
    "vue-chartjs": "^3.5.0",
    "webpack": "^4.41.5",
    "yarn": "^1.21.1"
  },
  "devDependencies": {
    "@nuxtjs/eslint-config": "^2.0.0",
    "@nuxtjs/eslint-module": "^1.1.0",
    "@nuxtjs/vuetify": "^1.9.1",
    "babel-eslint": "^10.0.3",
    "eslint": "^6.7.2",
    "eslint-plugin-nuxt": ">=0.5.0"
  }
}

追記

改めてターミナルを確認してみると、以下のwarnが発生しておりましたので追記させていただきます。

 WARN  [hardsource:204cee08] Using 28 MB of disk space.  

 WARN  [hardsource:204cee08] Tracking node dependencies with: yarn.lock. 

 WARN  [hardsource:204cee08] Node dependencies changed. Building new cache. 

調べたところ、上記の3つのwarnは問題ない挙動だそうです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.57%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る