webpack.config.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. polyfill: 'babel-polyfill',
  13. },
  14. output: {
  15. path: path.join(__dirname + "/public/js"),
  16. filename: "[name].[hash].js"
  17. },
  18. resolve: {
  19. modules: [
  20. './node_modules', './resource/thirdparty-js',
  21. ],
  22. },
  23. module: {
  24. rules: [
  25. {
  26. test: /.jsx?$/,
  27. exclude: /node_modules/,
  28. use: [{
  29. loader: 'babel-loader',
  30. }]
  31. }
  32. ]
  33. },
  34. plugins: []
  35. };
  36. if (process.env && process.env.NODE_ENV !== 'development') {
  37. config.plugins = [
  38. new webpack.DefinePlugin({
  39. 'process.env':{
  40. 'NODE_ENV': JSON.stringify('production')
  41. }
  42. }),
  43. new UglifyJsPlugin({
  44. compress:{
  45. warnings: false
  46. }
  47. }),
  48. ];
  49. }
  50. config.plugins.push(new ManifestPlugin());
  51. module.exports = config;