webpack.config.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const webpack = require("webpack");
  2. const TerserPlugin = require("terser-webpack-plugin");
  3. const { version, author, license } = require("./package.json");
  4. module.exports = {
  5. mode: "production",
  6. entry: {
  7. NoSleep: `${__dirname}/src/index.js`,
  8. "NoSleep.min": `${__dirname}/src/index.js`,
  9. },
  10. output: {
  11. path: `${__dirname}/dist`,
  12. filename: "[name].js",
  13. library: "NoSleep",
  14. libraryTarget: "umd",
  15. globalObject: "this",
  16. },
  17. module: {
  18. rules: [
  19. {
  20. test: /\.js$/,
  21. exclude: /(node_modules|bower_components)/,
  22. use: {
  23. loader: "babel-loader",
  24. options: {
  25. presets: ["env"],
  26. },
  27. },
  28. },
  29. ],
  30. },
  31. optimization: {
  32. minimize: true,
  33. minimizer: [
  34. new TerserPlugin({
  35. test: /\.min\.js(\?.*)?$/i,
  36. extractComments: false,
  37. }),
  38. ],
  39. },
  40. plugins: [
  41. new webpack.BannerPlugin({
  42. banner: `[name].js v${version} - git.io/vfn01 - ${author} - ${license} license`,
  43. }),
  44. ],
  45. };