webpack.dev.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const merge = require('webpack-merge').merge;
  2. const MiniCssExtractPlugin = require('mini-css-extract-plugin');
  3. const HtmlWebpackPlugin = require('html-webpack-plugin');
  4. const ESLintPlugin = require('eslint-webpack-plugin');
  5. const ProgressBarWebpackPlugin = require('progress-bar-webpack-plugin');
  6. const path = require('path');
  7. const common = require('./webpack.config.js');
  8. const resolve = (url) => path.resolve(__dirname, "..", url);
  9. module.exports = merge(common, {
  10. mode: 'development',
  11. devtool: 'inline-source-map',
  12. plugins: [
  13. new ESLintPlugin({
  14. overrideConfigFile: resolve(".eslintrc.js"),
  15. context: resolve("src"),
  16. extensions: ['ts', 'js'],
  17. fix: true,
  18. }),
  19. new ProgressBarWebpackPlugin(),
  20. new HtmlWebpackPlugin({
  21. template: './index.html',
  22. title: 'luckysheet-io',
  23. scriptLoading: 'blocking',
  24. }),
  25. new MiniCssExtractPlugin({
  26. filename: 'css/[name].[contenthash].css',
  27. }),
  28. ],
  29. output: {
  30. filename: 'js/[name].[contenthash].js',
  31. library: 'luckysheet-io',
  32. libraryTarget: 'umd',
  33. },
  34. devServer: {
  35. host: '127.0.0.1',
  36. port: 'auto',
  37. static: './',
  38. hot: true,
  39. bonjour: true,
  40. client: {
  41. progress: true,
  42. overlay: true,
  43. },
  44. },
  45. });