-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwebpack.config.js
64 lines (59 loc) · 1.69 KB
/
webpack.config.js
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
const BrowserSyncPlugin = require('browser-sync-webpack-plugin'),
path = require('path'),
VueLoaderPlugin = require('vue-loader/lib/plugin'),
webpack = require('webpack');
const projectPackage = require('./package.json');
function getDefinePlugin(environment, version) {
let config = {
VERSION: JSON.stringify(version)
};
if (environment.NODE_ENV === 'production') {
config['process.env'] = {'NODE_ENV': JSON.stringify('production')};
}
return new webpack.DefinePlugin(config);
}
module.exports = {
context: path.resolve(__dirname, 'src'),
entry : './index.js',
plugins: [
new BrowserSyncPlugin({
host : 'localhost',
port : '8080',
open : false,
server: {baseDir: ['.']}
}),
getDefinePlugin(process.env, projectPackage.version),
new VueLoaderPlugin()
],
module : {
rules: [
{
resource: {
test : /\.js$/,
include: [
path.resolve(__dirname, 'src')
]
},
use : {
loader : 'babel-loader',
options: {
cacheDirectory: true
}
}
},
{
resource: {
test: /\.vue$/
},
use : {
loader : 'vue-loader',
options: {}
}
},
]
},
output : {
path : path.resolve(__dirname, 'dist'),
filename: 'app.js'
}
};