1 | var BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
|
2 | var path = require("path");
|
3 | var webpack = require("webpack");
|
4 | var WebpackNotifierPlugin = require("webpack-notifier");
|
5 |
|
6 | var PROD = JSON.parse(process.env.PROD || false);
|
7 | var BUNDLE_ANALYZER = JSON.parse(process.env.BUNDLE_ANALYZER || false);
|
8 |
|
9 | module.exports = {
|
10 | entry: {
|
11 | "clipboard-polyfill": "./clipboard-polyfill.ts",
|
12 | "clipboard-polyfill.promise": ["es6-promise/dist/es6-promise.auto.js", "./clipboard-polyfill.ts"]
|
13 | },
|
14 | module: {
|
15 | rules: [
|
16 | { test: /\.ts$/, use: "ts-loader" }
|
17 | ]
|
18 | },
|
19 | output: {
|
20 | path: __dirname + "/build",
|
21 | filename: "[name].js",
|
22 | library: "clipboard",
|
23 | libraryTarget: "umd"
|
24 | },
|
25 | resolve: {
|
26 | extensions: [".ts"],
|
27 | modules: ["node_modules"]
|
28 | },
|
29 | plugins: [
|
30 | new WebpackNotifierPlugin({alwaysNotify: true})
|
31 | ]
|
32 | };
|
33 |
|
34 | if (BUNDLE_ANALYZER) {
|
35 | module.exports.plugins.push(new BundleAnalyzerPlugin());
|
36 | }
|
37 |
|
38 | if (PROD) {
|
39 | module.exports.plugins.push(new webpack.optimize.UglifyJsPlugin({sourceMap: false}));
|
40 | } else {
|
41 | module.exports.devtool = "source-map";
|
42 | }
|