Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. /**
  2. * -----------------------------------------------------------------------
  3. Run `webpack` and it will produce unminified output with sourcemaps.
  4. Run `NODE_ENV=production webpack` and it will minify the output and
  5. de-dupe all the unnecessary code.
  6. * -----------------------------------------------------------------------
  7. */
  8.  
  9. var debug = process.env.NODE_ENV !== "production";
  10. var webpack = require('webpack');
  11. var path = require('path');
  12. const CopyPlugin = require('copy-webpack-plugin');
  13.  
  14. const static_js_folder_dist = __dirname + '/js/dist/';
  15. const theme_js_folder = '../../../themes/custom/vanmoof/assets/js/';
  16. const theme_js_folder_dist = theme_js_folder + 'dist/';
  17. const theme_js_folder_lib = theme_js_folder + 'lib/';
  18.  
  19. console.log("Webpack running in debug: " + debug);
  20. console.log("Theme JS folder: " + theme_js_folder);
  21. console.log("Webpack version: " + webpack.Version);
  22. console.log("Dirname: " + __dirname + ' (target JS: ' + static_js_folder_dist + ')');
  23.  
  24. module.exports = {
  25. context: path.join(__dirname, "js/"),
  26. // comment source map so drupal doesn't break when doing aggregation
  27. // devtool: debug ? "eval-source-map" : true,
  28. entry: "./bundle.js",
  29. module: {
  30. rules: [{
  31. test: /\.jsx?$/,
  32. exclude: /(node_modules|bower_components)/,
  33. loader: 'babel-loader',
  34. query: {
  35. presets: ['es2015', 'stage-0'],
  36. plugins: [],
  37. }
  38. }]
  39. },
  40. output: {
  41. path: static_js_folder_dist,
  42. filename: "bundle.min.js"
  43. },
  44. plugins: debug ? [
  45. new CopyPlugin([
  46. { from: 'dist', to: theme_js_folder_dist },
  47. ], { logLevel: 'debug' }, { copyUnmodified: true }),
  48. new CopyPlugin([
  49. { from: 'lib', to: theme_js_folder_lib },
  50. ], { logLevel: 'warn' }, { copyUnmodified: true })
  51. ] :
  52. [
  53. new CopyPlugin([
  54. { from: 'dist', to: theme_js_folder_dist },
  55. ], { logLevel: 'warn' }, { copyUnmodified: true }),
  56. new CopyPlugin([
  57. { from: 'lib', to: theme_js_folder_lib },
  58. ], { logLevel: 'warn' }, { copyUnmodified: true }),
  59. new webpack.ContextReplacementPlugin(
  60. /moment[/\\]locale$/,
  61. /de|fr|nl|ja/
  62. ),
  63. new webpack.optimize.DedupePlugin(),
  64. new webpack.optimize.OccurrenceOrderPlugin(),
  65. new webpack.optimize.UglifyJsPlugin({ mangle: false, sourceMap: false }),
  66. new webpack.ProvidePlugin({
  67. $: 'jquery',
  68. jQuery: 'jquery'
  69. }),
  70. ],
  71. mode: 'development' //will cause errors with webpack <4
  72. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement