teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

webpack.config.jsが掲載のものでは動かなかったので修正しました。

2018/08/17 07:08

投稿

SystemAjisai
SystemAjisai

スコア174

title CHANGED
File without changes
body CHANGED
@@ -28,6 +28,7 @@
28
28
  ### 該当のソースコード
29
29
 
30
30
  webpack.config.js
31
+ ※(追記)ミスがあったので差し替えました※
31
32
  ```javascript
32
33
  const path = require('path');
33
34
  const { VueLoaderPlugin } = require("vue-loader");
@@ -36,73 +37,59 @@
36
37
  return path.join(__dirname, folderName);
37
38
  }
38
39
  module.exports = {
40
+ // development|production|none
41
+ mode: 'development',
42
+ entry: {
39
- // javascript
43
+ // javascript
44
+ "js/app" : "./resources/src/js/app.js",
45
+ // css
46
+ "main" : "./resources/src/css/main.scss",
47
+ },
48
+ output: {
49
+ path: setPath('/resources'),
50
+ filename: "[name].js"
51
+ },
52
+ optimization: {
53
+ splitChunks: {
54
+ name: 'js/vendor',
55
+ chunks: 'initial',
56
+ }
57
+ },
58
+ module:{
59
+ rules:[
40
- {
60
+ {
61
+ test: /.vue?$/,
41
- mode: 'development',
62
+ loader: 'vue-loader',
42
- entry: {
43
- // javascript
44
- "js/app" : "./resources/src/js/app.js",
45
- },
63
+ },
64
+ {
65
+ test: /.scss$/,
66
+ use: [
67
+ MiniCssExtractPlugin.loader,
68
+ {
69
+ loader: 'css-loader',
46
- output: {
70
+ options: {
47
- path: setPath('/resources'),
71
+ url: false,
48
- filename: "[name].js"
72
+ minimize: true,
73
+ sourceMap: true
74
+ }
49
- },
75
+ },
50
- optimization: {
51
- splitChunks: {
76
+ {
52
- name: 'js/vendor',
77
+ loader: 'sass-loader',
78
+ options: {
53
- chunks: 'initial',
79
+ sourceMap: true
80
+ }
81
+ }
82
+ ]
54
83
  }
55
- },
56
- module:{
57
- rules:[
58
- {
59
- test: /.vue?$/,
60
- loader: 'vue-loader',
61
- },
62
- ]
63
- },
64
- plugins: [
65
- new VueLoaderPlugin(),
66
84
  ]
67
85
  },
68
- // css
69
- {
70
- mode: 'development',
71
- entry: {
72
- // css
73
- "main" : "./resources/src/css/main.scss",
74
- },
75
- module:{
76
- rules:[
86
+ plugins: [
77
- {
78
- test: /.scss$/,
87
+ new VueLoaderPlugin(),
79
- use: [
80
- MiniCssExtractPlugin.loader,
88
+ new MiniCssExtractPlugin({
81
- {
89
+ // prefix は output.path
82
- loader: 'css-loader',
90
+ filename: 'css/[name].css'
83
- options: {
84
- url: false,
85
- minimize: true,
86
- sourceMap: true
87
- }
88
- },
91
+ })
89
- {
90
- loader: 'sass-loader',
91
- options: {
92
- sourceMap: true
93
- }
94
- }
95
- ]
92
+ ]
96
- }
97
- ]
98
- },
99
- plugins: [
100
- new MiniCssExtractPlugin({
101
- // prefix は output.path
102
- filename: 'css/[name].css'
103
- })
104
- ]
105
- }
106
93
  }
107
94
  ```
108
95
 
@@ -169,10 +156,16 @@
169
156
 
170
157
  ### 試したこと
171
158
 
172
- 最初はwebpack.config.jsでexportsを1つにして、entryにjavascriptもcssも一緒に書いていました。
159
+ ~~最初はwebpack.config.jsでexportsを1つにして、entryにjavascriptもcssも一緒に書いていました。
173
- exportsは配列で渡せるとあったのでjsとsassの設定を分けて書いて、sass側だけプラグインの設定を書いてみた(掲載ソース)のですが、同じ結果になってしまいました。
160
+ exportsは配列で渡せるとあったのでjsとsassの設定を分けて書いて、sass側だけプラグインの設定を書いてみた(掲載ソース)のですが、同じ結果になってしまいました。~~
174
161
 
162
+ (追記)
163
+ 上記の方法ではバンドル時にエラーになっていました。
164
+ watchという、ファイルを変更したらすぐバンドルしてくれる機能を使っていましたが、
165
+ 監視中にwebpack.config.jsを変えたせいか、全く反映されていませんでした。
166
+ 掲載ソースは当初のものに差し替えました。
175
167
 
168
+
176
169
  ## 環境
177
170
  windows 10
178
171
  Webpack 4.16.5