webpack.config.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var path = require('path'),
  2. webpack = require('webpack'),
  3. CommonsChunkPlugin = require("webpack/lib/optimize/CommonsChunkPlugin"),
  4. ExtractTextPlugin = require("extract-text-webpack-plugin");
  5. var source_dir = __dirname + '/src/main/resources/static/js',
  6. node_dir = __dirname + '/node_modules';
  7. var config = {
  8. entry: {
  9. app: [source_dir + '/app.render'],
  10. vendors: [source_dir + '/vendors']
  11. },
  12. resolve: {
  13. extensions: ['', '.js', '.jsx', '.css']
  14. },
  15. devtool: 'sourcemaps',
  16. cache: true,
  17. debug: true,
  18. output: {
  19. path: './target/classes/static/js',
  20. filename: '[name].bundle.js',
  21. },
  22. plugins: [
  23. new ExtractTextPlugin("../css/[name].css"),
  24. new CommonsChunkPlugin("vendors.bundle.js", ["app", "vendors"]),
  25. ],
  26. module: {
  27. loaders: [
  28. {
  29. test: /\.jsx?$/,
  30. exclude: /(node_modules)/,
  31. loader: 'babel',
  32. query: {
  33. cacheDirectory: true,
  34. presets: ['es2015', 'react']
  35. }
  36. },
  37. {
  38. test: /\.css$/,
  39. loader: ExtractTextPlugin.extract("style-loader", "css-loader!postcss-loader")
  40. },
  41. {
  42. test: /\.jpe?g$|\.gif$|\.png$|\.svg$|\.woff(2)?$|\.ttf$|\.wav$|\.mp3$/,
  43. loader: require.resolve("file-loader") + "?name=../[path][name].[ext]"
  44. },
  45. {
  46. test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
  47. loader: "file"
  48. },
  49. {
  50. test: /\.(woff|woff2)$/,
  51. loader:"url?prefix=font/&limit=5000"
  52. },
  53. {
  54. test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
  55. loader: "url?limit=10000&mimetype=application/octet-stream"
  56. },
  57. {
  58. test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
  59. loader: "url?limit=10000&mimetype=image/svg+xml"
  60. },
  61. {
  62. test: path.join(__dirname, '.'),
  63. exclude: /(node_modules)/,
  64. loader: 'babel-loader'
  65. }
  66. ]
  67. },
  68. postcss: function () {
  69. return [];
  70. }
  71. };
  72. module.exports = config;