baseui/webpack.config.js

84 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

2017-08-24 11:16:07 +02:00
var webpack = require('webpack');
var path = require('path');
// Naming and path settings
var entryPoint = './src/main.js';
var exportPath = path.resolve(__dirname, './build');
// Enviroment flag
var plugins = [];
var env = process.env.WEBPACK_ENV;
// Differ settings based on production flag
if (env === 'production') {
var UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;
2017-08-24 11:16:07 +02:00
plugins.push(new UglifyJsPlugin({
2017-08-31 22:55:24 +02:00
minimize: true,
sourceMap: true
}
));
plugins.push(new webpack.DefinePlugin({
2017-08-31 22:55:24 +02:00
'process.env': {
NODE_ENV: '"production"'
}
2017-08-31 22:55:24 +02:00
}
));
2017-08-24 11:16:07 +02:00
}
// Main Settings config
module.exports = {
2017-09-25 12:31:39 +02:00
entry: {
lib: [
'intersection-observer',
'babel-polyfill',
'./src/lib/baseui.js'
],
main: [
'intersection-observer',
'babel-polyfill',
entryPoint
]
},
devtool: 'source-map',
output: {
path: exportPath,
2017-08-31 23:04:54 +02:00
publicPath: 'build/',
filename: '[name].js',
2017-09-25 12:31:39 +02:00
library: 'baseUI',
libraryTarget: 'umd'
},
module: {
loaders: [{
enforce: "pre",
test: /\.(vue|js)$/,
loader: 'eslint-loader',
exclude: /node_modules/
2017-08-31 22:55:24 +02:00
}, {
test: /\.woff(\?.*)?$/i,
loader: 'url-loader',
}, {
test: /\.vue$/,
loader: 'vue-loader'
}, {
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
2017-09-01 17:49:37 +02:00
presets: ['es2015'],
plugins: ['syntax-dynamic-import']
}
}]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js'
},
modules: [path.resolve(__dirname, "src"), "node_modules"],
extensions: [".vue", ".js", ".less"]
},
plugins
};