-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathwebpack.config.js
118 lines (114 loc) · 3.15 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
const path = require('path');
const merge = require('webpack-merge');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const TemplateBannerPlugin = require('template-banner-webpack-plugin');
const babelConfig = {
cacheDirectory: true,
presets: [
['env', {
'modules': false,
'targets': {
'browsers': ['> 2%'],
uglify: true
},
}]
],
plugins: [
'transform-object-rest-spread',
['transform-runtime', {
'polyfill': false,
'helpers': false
}]
]
};
let config = {
output: {
path: path.resolve(__dirname + '/dist'),
},
module: {
rules: [
{
test: /\.js$/,
include: path.resolve(__dirname + '/src'),
exclude: /node_modules/,
use: [{loader: 'babel-loader', options: babelConfig}]
},
{
test: /\.vue$/,
include: path.resolve(__dirname + '/src'),
loader: 'vue-loader',
options: {
loaders: {
js: {
loader: 'babel-loader', options: babelConfig
}
},
esModule: false
}
}
]
},
resolve: {
extensions: [".js", ".json", ".vue", ".css"],
},
plugins: [
new UglifyJsPlugin(),
new TemplateBannerPlugin({
banner: `{name} v{version}
(c) 2017-{year} {author}
Released under the {license} License.`,
default: {
year: (new Date()).getFullYear(),
},
}),
]
};
module.exports = [
merge(config, {
entry: path.resolve(__dirname + '/src/plugin.js'),
output: {
filename: 'pretty-checkbox-vue.min.js',
libraryTarget: 'window',
library: 'PrettyCheckbox',
}
}),
merge(config, {
entry: path.resolve(__dirname + '/src/plugin.js'),
output: {
filename: 'pretty-checkbox-vue.js',
libraryTarget: 'umd',
library: 'pretty-checkbox-vue',
umdNamedDefine: true
}
}),
merge(config, {
entry: path.resolve(__dirname + '/src/PrettyInput.vue'),
output: {
path: path.resolve(__dirname + '/'),
filename: 'input.js',
libraryTarget: 'umd',
library: 'PrettyInput',
umdNamedDefine: true
}
}),
merge(config, {
entry: path.resolve(__dirname + '/src/PrettyCheckbox.vue'),
output: {
path: path.resolve(__dirname + '/'),
filename: 'check.js',
libraryTarget: 'umd',
library: 'PrettyCheck',
umdNamedDefine: true
}
}),
merge(config, {
entry: path.resolve(__dirname + '/src/PrettyRadio.vue'),
output: {
path: path.resolve(__dirname + '/'),
filename: 'radio.js',
libraryTarget: 'umd',
library: 'PrettyRadio',
umdNamedDefine: true
}
})
];