webpack.config.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var path = require('path');
  2. var webpack = require('webpack');
  3. var UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
  4. var ManifestPlugin = require('webpack-manifest-plugin');
  5. var config = {
  6. entry: {
  7. app: './resource/js/app.js',
  8. crowi: './resource/js/crowi.js',
  9. presentation: './resource/js/crowi-presentation.js',
  10. form: './resource/js/crowi-form.js',
  11. admin: './resource/js/crowi-admin.js',
  12. },
  13. output: {
  14. path: path.join(__dirname + "/public/js"),
  15. filename: "[name].[hash].js"
  16. },
  17. resolve: {
  18. modules: [
  19. './node_modules', './resource/thirdparty-js',
  20. ],
  21. },
  22. module: {
  23. rules: [
  24. {
  25. test: /.jsx?$/,
  26. exclude: /node_modules/,
  27. use: [{
  28. loader: 'babel-loader',
  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 UglifyJsPlugin({
  43. compress:{
  44. warnings: false
  45. }
  46. }),
  47. ];
  48. }
  49. config.plugins.push(new ManifestPlugin());
  50. module.exports = config;