| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 | | 'use strict' |  | const path = require('path') |  | const utils = require('./utils') |  | const config = require('../config') |  | const vueLoaderConfig = require('./vue-loader.conf') |  |   |  | function resolve (dir) { |  |   return path.join(__dirname, '..', dir) |  | } |  |   |  |   |  |   |  | module.exports = { |  |   context: path.resolve(__dirname, '../'), |  |   entry: { |  |     app: './src/main.js' |  |   }, |  |   output: { |  |     path: config.build.assetsRoot, |  |     filename: '[name].js', |  |     publicPath: process.env.NODE_ENV === 'production' |  |       ? config.build.assetsPublicPath |  |       : config.dev.assetsPublicPath |  |   }, |  |   resolve: { |  |     extensions: ['.js', '.vue', '.json'], |  |     alias: { |  |       'vue$': 'vue/dist/vue.esm.js', |  |       '@': resolve('src'), |  |       '@static': resolve('static'), |  |     } |  |   }, |  |   module: { |  |     rules: [ |  |       { |  |         test: /\.vue$/, |  |         loader: 'vue-loader', |  |         options: vueLoaderConfig |  |       }, |  |       { |  |         test: /\.js$/, |  |         loader: 'babel-loader', |  |         include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] |  |       }, |  |       { |  |         test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, |  |         loader: 'url-loader', |  |         options: { |  |           limit: 10000, |  |           name: utils.assetsPath('img/[name].[hash:7].[ext]') |  |         } |  |       }, |  |       { |  |         test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, |  |         loader: 'url-loader', |  |         options: { |  |           limit: 10000, |  |           name: utils.assetsPath('media/[name].[hash:7].[ext]') |  |         } |  |       }, |  |       { |  |         test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, |  |         loader: 'url-loader', |  |         options: { |  |           limit: 10000, |  |           name: utils.assetsPath('fonts/[name].[hash:7].[ext]') |  |         } |  |       } |  |     ] |  |   }, |  |   node: { |  |     // prevent webpack from injecting useless setImmediate polyfill because Vue |  |     // source contains it (although only uses it if it's native). |  |     setImmediate: false, |  |     // prevent webpack from injecting mocks to Node native modules |  |     // that does not make sense for the client |  |     dgram: 'empty', |  |     fs: 'empty', |  |     net: 'empty', |  |     tls: 'empty', |  |     child_process: 'empty' |  |   } |  | } | 
 |