json-q
Version:
Retrieves values from JSON objects (and JavaScript objects) by css-selector-like query (includes attribute filters and array flattening).
60 lines (50 loc) • 1.43 kB
JavaScript
var webpack = require("webpack");
var path = require("path");
var WebpackBeforeBuildPlugin = require('before-build-webpack');
var { del_folder, make_folder, del_file, copy_files } = require('./build_helper');
module.exports = {
context: __dirname,
entry: "./lib/index.js",
output: {
path: path.resolve(__dirname, '../'),
filename: "index.min.js",
library: "jsonQ"
},
externals:[ function(context, request, callback) {
// do not include node.js Buffer lib (which means adding 23k minified lib)
// clone() uses it, but can work without it
if(/buffer/.test(request)) {
return callback(null, "{}");
}
callback();
}],
plugins: [
new WebpackBeforeBuildPlugin(function(compiler, cb) {
del_file( path.resolve(__dirname, '../index.min.js') );
var from = path.resolve(__dirname, '../lib');
var to = path.join(__dirname, 'lib');
del_folder(to);
make_folder(to);
copy_files(from, to, cb);
// cb();
}),
new WebpackBeforeBuildPlugin(function(stats, cb) {
del_folder( path.join(__dirname, 'lib') );
cb();
}, ['done']),
new webpack.optimize.UglifyJsPlugin({minimize: true})
],
module: {
loaders: [{
test: /\.js?$/,
loader: "babel",
include: [
path.join(__dirname, "./lib"),
],
query: {
plugins: ["transform-object-assign"],
presets: ['es2015']
}
}]
}
};