1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-07 00:46:39 +02:00
TableFilter/webpack.config.js
2015-06-28 11:56:40 +10:00

91 lines
2.9 KiB
JavaScript

var webpack = require('webpack');
var path = require('path');
var Clean = require('clean-webpack-plugin');
var StringReplacePlugin = require("string-replace-webpack-plugin");
var fs = require('fs');
var pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
module.exports = {
cache: true,
entry: path.join(__dirname, '/src/tablefilter.js'),
output: {
publicPath: '/dist/tablefilter/',
path: path.join(__dirname, '/dist/tablefilter'),
filename: 'tablefilter.js',
// chunkFilename: '[name]-[chunkhash].js',
chunkFilename: 'tf[name].js',
libraryTarget: 'umd'
},
resolve: {
extensions: ['', '.js'],
alias: {
sortabletable: '../../../libs/sortabletable.js'
}
},
module: {
// exprContextRegExp: /$^/,
// exprContextCritical: true,
loaders: [
{
test: path.join(__dirname, 'src'),
exclude: /node_modules/,
query: {
compact: false
},
loader: 'babel-loader'
},
{
test: path.join(__dirname, 'src'),
loader: StringReplacePlugin.replace({
replacements: [{
pattern: /{VERSION}/ig,
replacement: function (/*match, p1, offset, string*/) {
return pkg.version;
}
}]
})
}
]
},
build: {
plugins: [
new Clean(['dist']),
new webpack.optimize.DedupePlugin(),
new StringReplacePlugin(),
new webpack.optimize.MinChunkSizePlugin({ minChunkSize: 10000 }),
new webpack.optimize.UglifyJsPlugin(),
new webpack.BannerPlugin(
'/** \n' +
' *\t '+ pkg.name +' v'+ pkg.version +' by Max Guglielmi \n' +
' *\t build date: '+ new Date().toISOString() +' \n' +
' *\t MIT License \n' +
' */ \n',
{ raw: true }
)
]
},
dev: {
devtool: 'sourcemap',
debug: true,
plugins: [
new Clean(['dist']),
new webpack.optimize.DedupePlugin(),
new StringReplacePlugin()
]
}
// ,
// plugins: [
// // new webpack.DefinePlugin({
// // 'process.env': {
// // // This has effect on the react lib size
// // 'NODE_ENV': JSON.stringify('production')
// // }
// // }),
// // new webpack.IgnorePlugin(/adapterSortabletable$/),
// new Clean(['dist']),
// new webpack.optimize.DedupePlugin(),
// new webpack.optimize.MinChunkSizePlugin({ minChunkSize: 10000 }),
// new webpack.optimize.UglifyJsPlugin()
// ]
};