paytabs-vue
Version:
Paytabs Express Checkout for Vue
86 lines (82 loc) • 2.3 kB
JavaScript
const path = require('path');
const webpack = require('webpack');
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const merge = require('webpack-merge');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
var commonConfig = {
entry: './src/components/PaytabsExpressCheckout.vue',
output: {
path: path.resolve(__dirname, 'dist')
},
externals: {
"jquery": "jQuery"
},
plugins: [
new CleanWebpackPlugin(['dist']),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
new VueLoaderPlugin(),
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"'
}),
],
optimization: {
minimizer: [
new UglifyJsPlugin(
{
uglifyOptions: {
output: { comments: false },
warnings: false,
compress: true
}
}
)
]
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['es2015']
}
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
};
module.exports = [
// Browser environment
merge(commonConfig, {
entry: path.resolve(__dirname + '/src/plugin.js'),
output: {
filename: 'paytabs-vue.min.js',
libraryTarget: 'window',
library: 'PaytabsExpressCheckout'
}
}),
// Node environment
merge(commonConfig, {
entry: path.resolve(__dirname + '/src/components/PaytabsExpressCheckout.vue'),
output: {
filename: 'paytabs-vue.js',
libraryTarget: 'umd',
library: 'PaytabsExpressCheckout',
umdNamedDefine: true
}
})
];