-
-
Save reinink/83058f9af402aa474010844f7f2b1c54 to your computer and use it in GitHub Desktop.
| let cssImport = require('postcss-import') | |
| let cssNext = require('postcss-cssnext') | |
| let glob = require('glob-all') | |
| let mix = require('laravel-mix') | |
| let purgeCss = require('purgecss-webpack-plugin') | |
| let tailwind = require('tailwindcss') | |
| mix.js('resources/assets/js/app.js', 'public/js') | |
| .postCss('resources/assets/css/app.css', 'public/css/app.css', [ | |
| cssImport(), | |
| tailwind('tailwind.js'), | |
| cssNext({ features: { autoprefixer: false }}), | |
| ]) | |
| .version() | |
| if (mix.inProduction()) { | |
| mix.webpackConfig({ | |
| plugins: [ | |
| new purgeCss({ | |
| paths: glob.sync([ | |
| path.join(__dirname, 'resources/views/**/*.blade.php'), | |
| path.join(__dirname, 'resources/assets/js/**/*.vue') | |
| ]), | |
| extractors: [ | |
| { | |
| extractor: class { | |
| static extract(content) { | |
| return content.match(/[A-z0-9-:\/]+/g) | |
| } | |
| }, | |
| extensions: ['html', 'js', 'php', 'vue'] | |
| } | |
| ] | |
| }) | |
| ] | |
| }) | |
| } |
@ctf0 Hey! You're probably better posting this as an issue on the PurgeCSS repo: https://github.com/FullHuman/purgecss 👍
@ctf0 ... Turns out, if you have a blank file included in the path.join, you will get that error. Spent the last few hours debugging this. Just go through your included directories and make sure you have no blank files.
Adding this code, whenever I run yarn run prod, there will be an strange unrelated error:
Module build failed: ReferenceError: Unknown plugin "transform-object-rest-spread" specified in "base" at 0, attempted to resolve relative to ".../.../..." Seems like the plugin has a conflict with babel-loader.
(Error doesn't appear when yarn run dev)
For anyone who is running in the same error as @ctf0 this little terminal command will help you find the blank files.
find . -emptyIn case anyone having the blank files issue comes across this.
It should be return content.match(/[A-z0-9-:\/]+/g) || []
Was looking at this issue: FullHuman/purgecss#30
Is it possible to use this extractor with Gulp? I have lots of classes like this:
cell-1\/2\@desktop {
width: 50%;
}
In my Gulpfile I have this:
gulp.task('prod-sass', function () {
// Delete old CSS files
del(['static/css/**/*']);
gulp.src('src/sass/**/*.scss')
.pipe(sass({
outputStyle : 'compressed'
}))
.pipe(
purgecss({
content: ['public/**/*.html'],
extractors: {
extractor: [/[A-z0-9-:\/]+/g)]
}
})
)
.pipe(gulp.dest('static/css'))
});
This doesn't seem to be working for me. Have I missed something?
I got an annoying bug where Webpack tried to read in directories. Apparently I had one named "chart.js" and that got read in as it had .js in its end.
I fixed it using this option:
if(mix.inProduction())
{
mix.webpackConfig({
plugins: [
new purgeCss({
paths: glob.sync([
path.join(__dirname, 'resources/views/**/*.blade.php'),
path.join(__dirname, 'resources/assets/js/**/*.js'),
path.join(__dirname, 'resources/assets/theme/js/**/*.js')
], {
nodir: true,
}),
extractors: [
{
extractor: class {
static extract(content) {
return content.match(/[A-z0-9-:\/]+/g)
}
},
extensions: ['html', 'js', 'php', 'vue']
}
]
})
]
});
}Notice the "nodir: true" option object...
for some reason keep getting error