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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Q&A

解決済

1回答

1543閲覧

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

CoAT.Yuki

総合スコア12

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

ビルド

ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

0グッド

0クリップ

投稿2019/11/30 12:50

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
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の設定

json

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

記述する先

json

1{ 2 "name": "ioi.", 3 "version": "0.1.0", 4 "private": true, 5 6/////////////////ここです!/////////////// 7 "scripts": { 8 "serve": "vue-cli-service serve", 9 "build": "vue-cli-service build", 10 "lint": "vue-cli-service lint" 11 }, 12/////////////////////////////////////// 13 "dependencies": { 14 "core-js": "^2.6.10", 15 "css-loader": "^3.2.0", 16 "element-ui": "^2.13.0", 17 "firebase": "^7.2.3", 18 "google-maps": "^3.3.0", 19 "mobile-device-detect": "^0.3.3", 20 "node-sass": "^4.13.0", 21 "sass": "^1.23.7", 22 "sass-loader": "^8.0.0", 23 "vue-router": "^3.0.3", 24 "vuefire": "^2.2.0", 25 "vuex": "^3.1.1", 26 "webpack": "^4.41.2" 27 }, 28 "devDependencies": { 29 "@vue/cli-plugin-babel": "^3.11.0", 30 "@vue/cli-plugin-eslint": "^3.11.0", 31 "@vue/cli-service": "^3.11.0", 32 "@vue/eslint-config-airbnb": "^4.0.0", 33 "babel-eslint": "^10.0.3", 34 "eslint": "^5.16.0", 35 "eslint-plugin-vue": "^5.2.3", 36 "style-loader": "^1.0.1", 37 "vue": "^2.6.10", 38 "vue-cli-plugin-vuetify": "^2.0.2", 39 "vue-loader": "^15.7.2", 40 "vue-style-loader": "^4.1.2", 41 "vue-template-compiler": "^2.6.10", 42 "webpack-cli": "^3.3.10" 43 }, 44 "eslintConfig": { 45 "root": true, 46 "env": { 47 "node": true 48 }, 49 "extends": [ 50 "plugin:vue/essential", 51 "@vue/airbnb" 52 ], 53 "rules": {}, 54 "parserOptions": { 55 "parser": "babel-eslint" 56 } 57 }, 58 "postcss": { 59 "plugins": { 60 "autoprefixer": {} 61 } 62 }, 63 "browserslist": [ 64 "> 1%", 65 "last 2 versions" 66 ] 67} 68

試したこと

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

うまくいった経緯は、再現してみないとわかりませんが...
とりあえず、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などについても、インストール以外の設定は不要です。

bash

1# Sass 2npm install -D sass-loader sass 3 4# Less 5npm install -D less-loader less 6 7# Stylus 8npm install -D stylus-loader stylus

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

投稿2019/12/09 23:47

zaki_zaki

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CoAT.Yuki

2019/12/10 02:41

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問