webpack.prod.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. const { merge } = require('webpack-merge');
  2. const path = require('path');
  3. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  4. const HtmlWebpackPlugin = require('html-webpack-plugin');
  5. const ESLintPlugin = require('eslint-webpack-plugin');
  6. const { CleanWebpackPlugin } = require('clean-webpack-plugin');
  7. const ProgressBarWebpackPlugin = require('progress-bar-webpack-plugin');
  8. const common = require('./webpack.config.js');
  9. const resolve = (url) => path.resolve(__dirname, "..", url);
  10. module.exports = merge(common, {
  11. mode: 'production',
  12. devtool: 'source-map',
  13. plugins: [
  14. new ESLintPlugin({
  15. overrideConfigFile: resolve(".eslintrc.js"),
  16. context: resolve("src"),
  17. extensions: ['ts', 'js'],
  18. fix: true,
  19. }),
  20. new ProgressBarWebpackPlugin(),
  21. new CleanWebpackPlugin(),
  22. new HtmlWebpackPlugin({
  23. template: './index.html',
  24. title: 'sheet-format',
  25. scriptLoading: 'blocking',
  26. }),
  27. new MiniCssExtractPlugin({
  28. filename: 'css/[name].css',
  29. }),
  30. ],
  31. output: {
  32. filename: 'js/[name].js',
  33. libraryTarget: 'umd',
  34. library: 'sheet-format',
  35. path: resolve('dist'),
  36. },
  37. });