vuetable-2
Version:
Datatable component for Vue 2.x
67 lines (61 loc) • 1.9 kB
JavaScript
var webpack = require("webpack");
var path = require('path')
var version = require("./../package.json").version;
var banner = "/**\n" + " * vuetable-2 v" + version + "\n" + " * https://github.com/ratiw/vuetable-2\n" + " * Released under the MIT License.\n" + " */\n";
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var StatsPlugin = require("stats-webpack-plugin");
var utils = require('./utils')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var cssFileName = "vuetable-2.css";
var jsFileName = "vuetable-2.js";
if(process.env.MINIFY && process.env.MINIFY === "false"){
jsFileName = "vuetable-2-full.js"
}
var minifyPlugins = [
new webpack.LoaderOptionsPlugin({
minimize: true,
debug: false
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap:true,
comments: false,
beautify: false
}),
];
var webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({sourceMap: true,extract: true})
},
entry: path.join(__dirname, '..', "src/index.js"),
output: {
path: path.join(__dirname, '..', "dist"),
filename: jsFileName,
library: "Vuetable",
libraryTarget: "umd"
},
plugins: [
new webpack.DefinePlugin({
"process.env": {
NODE_ENV: '"production"'
},
VERSION: JSON.stringify(require("../package.json").version)
}),
new webpack.BannerPlugin({
banner: banner,
raw: true
}),
new ExtractTextPlugin({filename: cssFileName, allChunks: true}),
new StatsPlugin('stats.json')
],
resolve: {
aliasFields: ["browser"]
}
});
if(process.env.MINIFY && process.env.MINIFY === "true"){
webpackConfig.plugins = webpackConfig.plugins.concat(minifyPlugins);
}
module.exports = webpackConfig;