webpack.config.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const path = require('path');
  2. const ExtraWatchWebpackPlugin = require('extra-watch-webpack-plugin');
  3. const MiniCssExtractPlugin = require("mini-css-extract-plugin");
  4. module.exports = {
  5. module: {
  6. rules: [
  7. {
  8. loader: 'raw-loader',
  9. test: /\.(glsl|frag|vert)$/,
  10. include: [ path.resolve(__dirname, 'build/node_modules/') ],
  11. },
  12. {
  13. loader: 'glslify-loader',
  14. test: /\.(glsl|frag|vert)$/,
  15. include: [ path.resolve(__dirname, 'build/node_modules/') ]
  16. },
  17. {
  18. loader: 'file-loader',
  19. test: /\.(woff2?|ttf|otf|eot|svg|html)$/,
  20. include: [ path.resolve(__dirname, 'build/node_modules/') ],
  21. options: {
  22. name: '[name].[ext]'
  23. }
  24. },
  25. {
  26. test:/\.(s*)css$/,
  27. use: [ MiniCssExtractPlugin.loader, 'css-loader', 'resolve-url-loader', 'sass-loader' ]
  28. }
  29. ]
  30. },
  31. plugins: [
  32. new ExtraWatchWebpackPlugin({
  33. files: [
  34. './build/node_modules/**/*.vert',
  35. './build/node_modules/**/*.frag',
  36. './build/node_modules/**/*.glsl',
  37. './build/node_modules/**/*.scss',
  38. './build/node_modules/**/*.html'
  39. ],
  40. }),
  41. new MiniCssExtractPlugin({ filename: "app.css" })
  42. ],
  43. }