@cocreate/filter
Version:
A JavaScript api define attributes for filtering color, description, text, price or any list of document stored in db. Great for creating custom components like fetch, calender, datatables etc.
66 lines (64 loc) • 1.44 kB
JavaScript
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const { EsbuildPlugin } = require("esbuild-loader");
const { FileUploader } = require("@cocreate/webpack");
module.exports = async (env, argv) => {
const isProduction = argv && argv.mode === "production";
const config = {
entry: {
"CoCreate-filter": "./src/index.js"
},
output: {
path: path.resolve(__dirname, "dist"),
filename: isProduction ? "[name].min.js" : "[name].js",
libraryExport: "default",
library: ["CoCreate", "filter"],
clean: true
},
plugins: [
new MiniCssExtractPlugin({
filename: isProduction ? "[name].min.css" : "[name].css"
}),
new FileUploader(env, argv)
],
mode: isProduction ? "production" : "development",
devtool: isProduction ? "source-map" : "eval-source-map",
module: {
rules: [
{
test: /.js$/,
exclude: /node_modules/,
use: {
loader: "esbuild-loader",
options: {
loader: "js",
target: "es2017"
}
}
},
{
test: /.css$/i,
use: [MiniCssExtractPlugin.loader, "css-loader"]
}
]
},
optimization: {
minimize: isProduction,
minimizer: [
new EsbuildPlugin({
target: "es2017",
css: true
})
],
splitChunks: {
cacheGroups: {
defaultVendors: false
}
}
},
performance: {
hints: isProduction ? "warning" : false
}
};
return config;
};