UNPKG

2.57 kBJavaScriptView Raw
1var webpack = require('webpack');
2var path = require('path');
3var Clean = require('clean-webpack-plugin');
4var StringReplacePlugin = require('string-replace-webpack-plugin');
5var fs = require('fs');
6var pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
7
8module.exports = {
9 cache: true,
10 entry: {
11 'main': path.join(__dirname, '/src/tablefilter.js')
12 },
13 output: {
14 path: path.join(__dirname, '/dist/tablefilter'),
15 filename: 'tablefilter.js',
16 chunkFilename: 'tf-[name]-[chunkhash].js',
17 libraryTarget: 'umd'
18 },
19 resolve: {
20 extensions: ['.js'],
21 alias: {
22 sortabletable: '../../../libs/sortabletable.js'
23 }
24 },
25 module: {
26 rules: [
27 {
28 test: path.join(__dirname, 'src'),
29 exclude: /tablefilter\/node_modules/,
30 options: {
31 compact: false,
32 presets: ['es2015'],
33 // plugins: [['transform-es2015-classes', {loose: true}]]
34 plugins: 'transform-es2015-classes'
35 },
36 loader: 'babel-loader'
37 }, {
38 test: path.join(__dirname, 'src'),
39 loader: StringReplacePlugin.replace({
40 replacements: [{
41 pattern: /{VERSION}/ig,
42 replacement: function (/*match, p1, offset, string*/) {
43 return pkg.version;
44 }
45 },{
46 pattern: /{AUTHOR}/ig,
47 replacement: function () {
48 return pkg.author.name;
49 }
50 }]
51 })
52 }
53 ]
54 },
55 devtool: 'source-map',
56 plugins: [
57 new Clean(['dist']),
58 new webpack.optimize.AggressiveMergingPlugin(),
59 new StringReplacePlugin(),
60 new webpack.optimize.MinChunkSizePlugin({ minChunkSize: 10000 }),
61 new webpack.optimize.UglifyJsPlugin({
62 sourceMap: true,
63 compress: {
64 warnings: false
65 }
66 }),
67 new webpack.BannerPlugin({
68 banner: '/** \n' +
69 ' *\t '+pkg.name+' v'+pkg.version+' by '+pkg.author.name+'\n' +
70 ' *\t build date: '+ new Date().toISOString() +' \n' +
71 ' *\t MIT License \n' +
72 ' */ \n',
73 raw: true
74 })
75 ]
76};