webpack.config.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const HtmlWebpackPlugin = require('html-webpack-plugin')
  2. const HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin')
  3. const LiveReloadPlugin = require('webpack-livereload-plugin')
  4. const fs = require('fs')
  5. module.exports = {
  6. entry: './src/index.js',
  7. mode: process.env.NODE_ENV || 'development',
  8. devServer: {
  9. contentBase: `${__dirname}/dist`,
  10. compress: false,
  11. port: 9000,
  12. writeToDisk: true
  13. },
  14. plugins: [
  15. ...fs.readdirSync('src').filter(x => x.endsWith('.html')).map(file =>
  16. new HtmlWebpackPlugin({
  17. alwaysWriteToDisk: true,
  18. filename: file,
  19. template: `src/${file}`
  20. })
  21. ),
  22. new HtmlWebpackHarddiskPlugin(),
  23. new LiveReloadPlugin({
  24. appendScriptTag: true
  25. })
  26. ],
  27. module: {
  28. rules: [
  29. { test: /\.html$/, loader: 'html-loader' },
  30. { test: /\.css$/, loader: 'style-loader!css-loader' },
  31. { test: /\.less$/, loader: 'style-loader!css-loader!less-loader' },
  32. { test: /\.png$/, loader: 'file-loader' },
  33. { test: /\.jpg$/, loader: 'file-loader' },
  34. { test: /\.gif$/, loader: 'file-loader' },
  35. { test: /\.svg$/, loader: 'svg-inline-loader' }
  36. ]
  37. }
  38. }