spatie/laravel-mix-purgecss

Ignore Select2 classes or identifer from being purged

Closed this issue · 0 comments

Hey, I have a select2 js file located here resources/assets/libs/select2/dist/js/select2.min.js. The select2.min.js file is included inside core.js file.

The css file css NOT scss is located here resources/assets/libs/select2/dist/css/select2.css. The select2.css file is included inside core.scss file.

When i don't use purgeCss the select2 classes injected by its JS are working fine but when i apply purgeCss the select2 classes injected by its JS are no longer there in the css and that is why select2 design is messed up.

I want to exlude all those classes OR ID's used in my blade views or JS.

Please tell me do i have to use all the levels of safelist ? or which one should i use in this case, i also tried path.join(__dirname, 'resources/**/*.blade.php')

const mix = require('laravel-mix');
require('laravel-mix-purgecss');
const path = require('path');

mix
  .js('resources/js/core/core.js', 'public/js')
  .js('resources/js/core/guest.js', 'public/js')
  .js('resources/js/core/dashboard.js', 'public/js')
  .js('resources/js/admin/application.js', 'public/js')
  .js('resources/js/core/datatableCore.js', 'public/js')
  
  .copyDirectory('resources/js/flasher', 'public/js', false)
  
  .sass('resources/css/core.scss', 'public/css')
  .sass('resources/css/guest.scss', 'public/css')
  .sass('resources/css/dashboard.scss', 'public/css')
  .sass('resources/css/minimal.scss', 'public/css')
  
  .copy('resources/assets/images/', 'public/images', false)
  
  .purgeCss({
  enabled: true,
  content: [
	  path.join(__dirname, 'resources/**/*.php'),
	  path.join(__dirname, 'resources/**/*.js'),
  ],
  safelist: {
	  standard: ['select2', '/^select2-/', /select2/],
	  deep: [/select2$/],
	  greedy: [/select2$/],
  },
});