UNPKG

paytabs-vue

Version:

Paytabs Express Checkout for Vue

86 lines (82 loc) 2.3 kB
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 } }) ];