webpack.config.js 1000 B

123456789101112131415161718192021222324252627282930313233343536
  1. const path = require("path");
  2. const TerserJSPlugin = require('terser-webpack-plugin');
  3. const HtmlPlugin = require("html-webpack-plugin");
  4. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  5. const CleanWebpackPlugin = require("clean-webpack-plugin");
  6. const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
  7. module.exports = {
  8. plugins: [
  9. new CleanWebpackPlugin(),
  10. new HtmlPlugin({template: "./ui/masterpage-webpack.tpl", filename: "../masterpage.tpl"}),
  11. new MiniCssExtractPlugin({filename: "styles.css"})
  12. ],
  13. module: {
  14. rules: [
  15. {
  16. test: /\.(css|scss)$/,
  17. use: [
  18. {loader: "style-loader"},
  19. MiniCssExtractPlugin.loader,
  20. {loader: "css-loader", options: {url: false,}},
  21. "sass-loader"
  22. ]
  23. }
  24. ]
  25. },
  26. optimization: {
  27. minimizer: [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})],
  28. },
  29. entry: "./ui/js/index.js",
  30. output: {
  31. path: path.resolve(__dirname, "ui/dist/"),
  32. filename: "bundle.js"
  33. },
  34. mode: "production"
  35. };