wehelpjs
Version:
wehelpjs is the JavaScript API Library for the WeYouMe blockchain
84 lines (74 loc) • 1.79 kB
JavaScript
;
const Visualizer = require('webpack-visualizer-plugin');
const _ = require('lodash');
const path = require('path');
const MinifyPlugin = require("babel-minify-webpack-plugin");
require('dotenv').config()
const DEFAULTS = {
isDevelopment: process.env.NODE_ENV !== 'production',
baseDir: path.join(__dirname, '..'),
};
function makePlugins(options) {
const isDevelopment = options.isDevelopment;
let plugins = [
new Visualizer({
filename: './statistics.html'
}),
];
if (!isDevelopment) {
plugins = plugins.concat([
new MinifyPlugin({}, {
comments: false
})
]);
}
return plugins;
}
function makeConfig(options) {
if (!options) options = {};
_.defaults(options, DEFAULTS);
const isDevelopment = options.isDevelopment;
return {
devtool: isDevelopment ? 'cheap-eval-source-map' : 'source-map',
entry: {
wehelpjs: path.join(options.baseDir, 'src/browser.js'),
// 'wehelpjs-tests': path.join(options.baseDir, 'test/api.test.js'),
},
output: {
path: path.join(options.baseDir, 'dist'),
filename: '[name].min.js',
},
plugins: makePlugins(options),
module: {
rules: [
// {
// test: /\.js?$/,
// include: '/src/',
// use: {
// loader: 'babel-loader'
// }
// },
{
test: /\.json?$/,
include: '/node_modules/, /src/',
use: {
loader: 'json-loader'
}
},
],
},
// optimization: {
// minimizer: [new UglifyJsPlugin({
// test: /\.js(\?.*)?$/i,
// sourceMap: true
// })]
// }
};
}
if (!module.parent) {
console.log(makeConfig({
isDevelopment: process.env.NODE_ENV !== 'production',
}));
}
exports = module.exports = makeConfig;
exports.DEFAULTS = DEFAULTS;