1
0

webpack.mix.js 3.0 KB

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