From adf015be43f2e9db0631d3ca072368c5c53bc323 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sun, 11 Jun 2023 16:20:05 -0600 Subject: [PATCH] Update webpack --- webpack.mix.js | 64 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 14 deletions(-) diff --git a/webpack.mix.js b/webpack.mix.js index a6de69cbc..eeee2fb91 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -1,8 +1,16 @@ let mix = require('laravel-mix'); +const fs = require("fs"); + +mix.before(() => { + fs.rmSync('public/js', { recursive: true, force: true }); +}); + mix.sass('resources/assets/sass/app.scss', 'public/css') .sass('resources/assets/sass/appdark.scss', 'public/css') .sass('resources/assets/sass/admin.scss', 'public/css') +.sass('resources/assets/sass/portfolio.scss', 'public/css') +.sass('resources/assets/sass/spa.scss', 'public/css') .sass('resources/assets/sass/landing.scss', 'public/css').version(); mix.js('resources/assets/js/app.js', 'public/js') @@ -16,24 +24,52 @@ mix.js('resources/assets/js/app.js', 'public/js') .js('resources/assets/js/compose-classic.js', 'public/js') .js('resources/assets/js/search.js', 'public/js') .js('resources/assets/js/developers.js', 'public/js') -.js('resources/assets/js/loops.js', 'public/js') .js('resources/assets/js/hashtag.js', 'public/js') .js('resources/assets/js/collectioncompose.js', 'public/js') .js('resources/assets/js/collections.js', 'public/js') .js('resources/assets/js/profile-directory.js', 'public/js') .js('resources/assets/js/story-compose.js', 'public/js') - .js('resources/assets/js/direct.js', 'public/js') +.js('resources/assets/js/direct.js', 'public/js') .js('resources/assets/js/admin.js', 'public/js') -.js('resources/assets/js/rempro.js', 'public/js') -.js('resources/assets/js/rempos.js', 'public/js') +.js('resources/assets/js/spa.js', 'public/js') +.js('resources/assets/js/stories.js', 'public/js') +.js('resources/assets/js/portfolio.js', 'public/js') +.js('resources/assets/js/installer.js', 'public/js') +.js('resources/assets/js/admin_invite.js', 'public/js') +.js('resources/assets/js/landing.js', 'public/js') +.vue({ version: 2 }); -.extract([ - 'lodash', - 'popper.js', - 'jquery', - 'axios', - 'bootstrap', - 'vue', - 'readmore-js' -]) -.version(); +mix.extract(); +mix.version(); + +const TerserPlugin = require('terser-webpack-plugin'); + +mix.options({ + processCssUrls: false, + terser: { + parallel: true, + terserOptions: { + compress: true, + output: { + comments: false + } + } + } +}) +mix.webpackConfig({ + optimization: { + providedExports: false, + sideEffects: false, + usedExports: false, + minimize: true, + minimizer: [ new TerserPlugin({ + extractComments: false, + })] + }, + output: { + chunkFilename: 'js/[name].[chunkhash].js', + } +}); +mix.autoload({ + jquery: ['$', 'jQuery', 'window.jQuery'] +});