途中からWebpackをVueへ導入する際のWebpack.configの設定方法
解決済
回答 1
投稿
- 評価
- クリップ 0
- VIEW 1,472
前提・実現したいこと
ここに質問の内容を詳しく書いてください。
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ページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
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側の設定が効いているからかもしれませんね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.37%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2019/12/10 11:41
VUE素人なので、質問がしっかりまとまっていなかったと思うのですが、丁寧にご回答いただき、ありがとうございました! これからもっと精進いたします!