webpack.mix.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. let mix = require('laravel-mix');
  2. const fs = require("fs");
  3. mix.before(() => {
  4. fs.rmSync('public/js', { recursive: true, force: true });
  5. });
  6. mix.sass('resources/assets/sass/app.scss', 'public/css')
  7. .sass('resources/assets/sass/appdark.scss', 'public/css')
  8. .sass('resources/assets/sass/admin.scss', 'public/css')
  9. .sass('resources/assets/sass/portfolio.scss', 'public/css')
  10. .sass('resources/assets/sass/spa.scss', 'public/css')
  11. .sass('resources/assets/sass/landing.scss', 'public/css').version();
  12. mix.js('resources/assets/js/app.js', 'public/js')
  13. .js('resources/assets/js/activity.js', 'public/js')
  14. .js('resources/assets/js/components.js', 'public/js')
  15. .js('resources/assets/js/discover.js', 'public/js')
  16. .js('resources/assets/js/profile.js', 'public/js')
  17. .js('resources/assets/js/status.js', 'public/js')
  18. .js('resources/assets/js/timeline.js', 'public/js')
  19. .js('resources/assets/js/compose.js', 'public/js')
  20. .js('resources/assets/js/compose-classic.js', 'public/js')
  21. .js('resources/assets/js/search.js', 'public/js')
  22. .js('resources/assets/js/developers.js', 'public/js')
  23. .js('resources/assets/js/hashtag.js', 'public/js')
  24. .js('resources/assets/js/collectioncompose.js', 'public/js')
  25. .js('resources/assets/js/collections.js', 'public/js')
  26. .js('resources/assets/js/profile-directory.js', 'public/js')
  27. .js('resources/assets/js/story-compose.js', 'public/js')
  28. .js('resources/assets/js/direct.js', 'public/js')
  29. .js('resources/assets/js/admin.js', 'public/js')
  30. .js('resources/assets/js/spa.js', 'public/js')
  31. .js('resources/assets/js/stories.js', 'public/js')
  32. .js('resources/assets/js/portfolio.js', 'public/js')
  33. .js('resources/assets/js/admin_invite.js', 'public/js')
  34. .js('resources/assets/js/landing.js', 'public/js')
  35. .vue({ version: 2 });
  36. mix.extract();
  37. mix.version();
  38. const TerserPlugin = require('terser-webpack-plugin');
  39. mix.options({
  40. processCssUrls: false,
  41. terser: {
  42. parallel: true,
  43. terserOptions: {
  44. compress: true,
  45. output: {
  46. comments: false
  47. }
  48. }
  49. }
  50. })
  51. mix.webpackConfig({
  52. optimization: {
  53. providedExports: false,
  54. sideEffects: false,
  55. usedExports: false,
  56. minimize: true,
  57. minimizer: [ new TerserPlugin({
  58. extractComments: false,
  59. })]
  60. },
  61. output: {
  62. chunkFilename: 'js/[name].[chunkhash].js',
  63. }
  64. });
  65. mix.autoload({
  66. jquery: ['$', 'jQuery', 'window.jQuery']
  67. });