1
+ var path = require ( 'path' )
2
+ var webpack = require ( 'webpack' )
3
+ var ExtractTextPlugin = require ( 'extract-text-webpack-plugin' )
4
+
5
+ module . exports = {
6
+ entry : './src/index.js' ,
7
+ output : {
8
+ path : path . resolve ( __dirname , '..' , './lib' ) ,
9
+ filename : 'vue-demonstration.js' ,
10
+ library : 'vue-demonstration' ,
11
+ libraryTarget : 'umd'
12
+ } ,
13
+ externals : {
14
+ vue : {
15
+ root : 'Vue' ,
16
+ commonjs : 'vue' ,
17
+ commonjs2 : 'vue' ,
18
+ amd : 'vue'
19
+ }
20
+ } ,
21
+ module : {
22
+ rules : [
23
+ {
24
+ test : / \. v u e $ / ,
25
+ loader : 'vue-loader' ,
26
+ options : {
27
+ loaders : {
28
+ css : 'vue-style-loader!css-loader' ,
29
+ less : 'vue-style-loader!css-loader!less-loader' ,
30
+ // css: ExtractTextPlugin.extract({
31
+ // use: 'css-loader',
32
+ // fallback: 'vue-style-loader'
33
+ // }),
34
+ // less: ExtractTextPlugin.extract({
35
+ // fallback: 'vue-style-loader',
36
+ // use: ['css-loader', 'less-loader']
37
+ // })
38
+ }
39
+ // other vue-loader options go here
40
+ }
41
+ } ,
42
+ {
43
+ test : / \. c s s $ / ,
44
+ use : [
45
+ { loader : 'css-loader' } ,
46
+ { loader : 'style-loader' }
47
+ ]
48
+ // loader: ExtractTextPlugin.extract({
49
+ // use: "css-loader",
50
+ // fallback: "style-loader"
51
+ // })
52
+ } ,
53
+ {
54
+ test : / \. l e s s $ / ,
55
+ use : [
56
+ { loader : 'css-loader' } ,
57
+ { loader : 'style-loader' } ,
58
+ { loader : 'less-loader' }
59
+ ]
60
+ // loader: ExtractTextPlugin.extract({
61
+ // fallback: 'style-loader',
62
+ // use: ['css-loader', 'less-loader']
63
+ // })
64
+ } ,
65
+ {
66
+ test : / \. j s $ / ,
67
+ loader : 'babel-loader' ,
68
+ exclude : / n o d e _ m o d u l e s /
69
+ } ,
70
+ {
71
+ test : / \. ( p n g | j p g | g i f | s v g ) $ / ,
72
+ loader : 'file-loader' ,
73
+ options : {
74
+ name : '[name].[ext]?[hash]'
75
+ }
76
+ } ,
77
+ {
78
+ test : / \. ( w o f f 2 ? | e o t | t t f | o t f ) ( \? .* ) ? $ / ,
79
+ loader : 'url-loader' ,
80
+ query : {
81
+ limit : 10000 ,
82
+ name : path . posix . join ( 'static' , 'fonts/[name].[hash:7].[ext]' )
83
+ }
84
+ }
85
+ ]
86
+ } ,
87
+ resolve : {
88
+ extensions : [ '.js' , '.vue' , '.json' ]
89
+ } ,
90
+ plugins : [
91
+ new webpack . optimize . UglifyJsPlugin ( {
92
+ sourceMap : true ,
93
+ compress : {
94
+ warnings : false
95
+ }
96
+ } )
97
+ // ,
98
+ // new ExtractTextPlugin({
99
+ // filename: '../lib/vue-demonstration.css',
100
+ // allChunks: true
101
+ // })
102
+ ]
103
+ }
0 commit comments