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

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

ただいまの
回答率

88.63%

途中からWebpackをVueへ導入する際のWebpack.configの設定方法

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,237

CoAT.Yuki

score 10

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
Vue.js で簡単なウェブアプリを作成中で、Vue初心者です。
アプリ作成中にWebpackが必要になり、途中から導入しました。
すると、時々なぜかビルドエラーになり、sassやcss-loaderにあるはずのファイルのパスが見つからないと出る様になりました。それが、なぜか解決したのですが、理由が全くわかりません。
(ちなみに、sass, sass-loader, css-loader, style-loader,など必要なものは一通りインストール済みです。)

なので、webpackの設定ができる、webpack.configuration.jsを通して、
それらのファイルのパスを明確に定義できる様にしたいです。
(正直これが本当に必要かどうかもわかりません。そもそもなぜ突然ビルドエラーになり突然大丈夫になるのかもわかりません。。。)

発生している問題

Vue.js のフレームワークをインストールした際に、package.jsonというファイルがあり、そこへ、webpackの設定が必要だということを下記の記事から知ったのですが、そのファイルにはすでに下記の様な設定がされており、どこへ記述すれば良いのかわかりません。。。

参考:https://reffect.co.jp/html/webpack-loader-setting-for-beginner

該当のソースコード

Webpackの設定

scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack --mode development",
    "build": "webpack --mode production"
  },


記述する先

{
  "name": "ioi.",
  "version": "0.1.0",
  "private": true,

/////////////////ここです!///////////////
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
///////////////////////////////////////
  "dependencies": {
    "core-js": "^2.6.10",
    "css-loader": "^3.2.0",
    "element-ui": "^2.13.0",
    "firebase": "^7.2.3",
    "google-maps": "^3.3.0",
    "mobile-device-detect": "^0.3.3",
    "node-sass": "^4.13.0",
    "sass": "^1.23.7",
    "sass-loader": "^8.0.0",
    "vue-router": "^3.0.3",
    "vuefire": "^2.2.0",
    "vuex": "^3.1.1",
    "webpack": "^4.41.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.11.0",
    "@vue/cli-plugin-eslint": "^3.11.0",
    "@vue/cli-service": "^3.11.0",
    "@vue/eslint-config-airbnb": "^4.0.0",
    "babel-eslint": "^10.0.3",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.2.3",
    "style-loader": "^1.0.1",
    "vue": "^2.6.10",
    "vue-cli-plugin-vuetify": "^2.0.2",
    "vue-loader": "^15.7.2",
    "vue-style-loader": "^4.1.2",
    "vue-template-compiler": "^2.6.10",
    "webpack-cli": "^3.3.10"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "@vue/airbnb"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

試したこと

色々試した末にビルドの問題は解決しビルドはできました。
なのでどなたか、設定の方法をご教授お願いいたします。
それと、webpackのコンフィグがどういう時に必要で、それがどうビルドと関係してくるのかもご教授いただけると、ありがたいです!

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

解決してよかったですね。

うまくいった経緯は、再現してみないとわかりませんが...
とりあえず、VueCliとwebpackについて説明します。

なので、webpackの設定ができる、webpack.configuration.jsを通して、
それらのファイルのパスを明確に定義できる様にしたいです。

VueCli3(package.jsonに記載されている@vue/cli-serviceのこと)以降では、
webpackを内包しており、webpackに関する設定情報はvue.config.jsに書き込む仕様となっています。
(以下URLを参照してみてください。)

https://cli.vuejs.org/guide/webpack.html

すると、時々なぜかビルドエラーになり、sassやcss-loaderにあるはずのファイルのパスが見つからないと出る様になりました。それが、なぜか解決したのですが、理由が全くわかりません。

https://cli.vuejs.org/guide/css.html#referencing-assets

webpack config is still pre-configured to handle all of them. You just need to manually install the corresponding webpack loaders:

VueCli3以降では、css-loaderが事前に設定されているため、インストール不要となります。
sass,stylusなどについても、インストール以外の設定は不要です。

# Sass
npm install -D sass-loader sass

# Less
npm install -D less-loader less

# Stylus
npm install -D stylus-loader stylus

解決したのは、sass-loader等の設定を削除し、
VueCli側の設定が効いているからかもしれませんね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/12/10 11:41

    ということは、webpackのconfigは削除し、vue.config.jsへ記述ということなんですね!
    VUE素人なので、質問がしっかりまとまっていなかったと思うのですが、丁寧にご回答いただき、ありがとうございました! これからもっと精進いたします!

    キャンセル

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

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

関連した質問

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