mirror of
https://github.com/zenorocha/clipboard.js.git
synced 2023-08-10 21:12:48 +03:00
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
const pkg = require("./package.json");
|
|
const path = require("path");
|
|
const webpack = require("webpack");
|
|
const UglifyJSPlugin = require("uglifyjs-webpack-plugin");
|
|
|
|
const production = process.env.NODE_ENV === "production" || false;
|
|
|
|
const banner = `clipboard.js v${pkg.version}
|
|
https://clipboardjs.com/
|
|
|
|
Licensed MIT © Zeno Rocha`;
|
|
|
|
module.exports = {
|
|
entry: "./src/clipboard.js",
|
|
mode: "production",
|
|
output: {
|
|
filename: production ? "clipboard.min.js" : "clipboard.js",
|
|
path: path.resolve(__dirname, "dist"),
|
|
library: "ClipboardJS",
|
|
globalObject: "this",
|
|
libraryExport: "default",
|
|
libraryTarget: "umd",
|
|
},
|
|
module: {
|
|
rules: [{ test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }],
|
|
},
|
|
optimization: {
|
|
minimize: production,
|
|
minimizer: [
|
|
new UglifyJSPlugin({
|
|
parallel: require("os").cpus().length,
|
|
uglifyOptions: {
|
|
ie8: false,
|
|
keep_fnames: false,
|
|
output: {
|
|
beautify: false,
|
|
comments: (node, { value, type }) =>
|
|
type == "comment2" && value.startsWith("!"),
|
|
},
|
|
},
|
|
}),
|
|
],
|
|
},
|
|
plugins: [new webpack.BannerPlugin({ banner })],
|
|
};
|