webpack.config.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var path = require('path');
  2. var webpack = require('webpack');
  3. var ManifestPlugin = require('webpack-manifest-plugin');
  4. var config = {
  5. entry: {
  6. app: './resource/js/app.js',
  7. crowi: './resource/js/crowi.js',
  8. presentation: './resource/js/crowi-presentation.js',
  9. form: './resource/js/crowi-form.js',
  10. admin: './resource/js/crowi-admin.js',
  11. },
  12. output: {
  13. path: path.join(__dirname + "/public/js"),
  14. filename: "[name].[hash].js"
  15. },
  16. resolve: {
  17. modulesDirectories: [
  18. './node_modules', './resource/thirdparty-js',
  19. ],
  20. },
  21. module: {
  22. loaders: [
  23. {
  24. test: /.jsx?$/,
  25. loader: 'babel-loader',
  26. exclude: /node_modules/,
  27. query: {
  28. presets: ['es2015', 'react']
  29. }
  30. }
  31. ]
  32. },
  33. plugins: []
  34. };
  35. if (process.env && process.env.NODE_ENV !== 'development') {
  36. config.plugins = [
  37. new webpack.DefinePlugin({
  38. 'process.env':{
  39. 'NODE_ENV': JSON.stringify('production')
  40. }
  41. }),
  42. new webpack.optimize.UglifyJsPlugin({
  43. compress:{
  44. warnings: false
  45. }
  46. }),
  47. ];
  48. }
  49. config.plugins.push(new ManifestPlugin());
  50. module.exports = config;