1 | const path = require('path');
|
2 | const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
3 | const webpack = require('webpack');
|
4 | const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');
|
5 |
|
6 | module.exports = {
|
7 | entry: {
|
8 | 'dist/index': path.resolve(__dirname, './src/index.js'),
|
9 | 'dist/xml-lite': path.resolve(__dirname, './lib/index-browser.js'),
|
10 | 'spec/index': path.resolve(__dirname, './spec/index.spec.js'),
|
11 | },
|
12 | output: {
|
13 | filename: '[name].js',
|
14 | library: 'XMLLite',
|
15 | libraryTarget: 'var',
|
16 | path: path.resolve(__dirname),
|
17 | publicPath: '/',
|
18 | },
|
19 | alias: {},
|
20 | resolveLoader: {},
|
21 | module: {
|
22 | loaders: [
|
23 | {
|
24 | test: /\.js[x]?$/,
|
25 | loader: 'babel-loader',
|
26 | exclude: /locale/,
|
27 | query: {
|
28 | presets: [
|
29 | 'es2015',
|
30 | ]
|
31 | }
|
32 | },
|
33 | {
|
34 | test: /\.css$/,
|
35 | loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
|
36 | },
|
37 | {
|
38 | test: /\.less$/,
|
39 | loader: ExtractTextPlugin.extract('style-loader', 'css-loader!less-loader')
|
40 | },
|
41 | {
|
42 | test: /\.(png|jpg|jpeg|gif)(\?v=\d+\.\d+\.\d+)?$/i,
|
43 | loader: 'url?name=[path][name].[ext]'
|
44 | },
|
45 | {
|
46 | test: /\.(eot|svg|ttf|woff|woff2)$/,
|
47 | loader: 'url?name=[path][name].[ext]'
|
48 | },
|
49 | {
|
50 | test: /\.json$/,
|
51 | loader: 'json'
|
52 | },
|
53 | ]
|
54 | },
|
55 | externals: {
|
56 | 'codemirror': 'CodeMirror',
|
57 | 'jquery': 'jQuery',
|
58 | 'xml-lite': 'XMLLite',
|
59 | },
|
60 | plugins: [
|
61 | new ExtractTextPlugin('[name].css'),
|
62 | new webpack.optimize.UglifyJsPlugin({
|
63 | compress: {
|
64 | warnings: false
|
65 | }
|
66 | }),
|
67 |
|
68 | new webpack.optimize.DedupePlugin(),
|
69 | new OptimizeCssAssetsPlugin({
|
70 | assetNameRegExp: /\.optimize\.css$/g,
|
71 | cssProcessor: require('cssnano'),
|
72 | cssProcessorOptions: {
|
73 | discardComments: {
|
74 | removeAll: true
|
75 | }
|
76 | },
|
77 | canPrint: true
|
78 | })
|
79 | ],
|
80 | };
|