Add PurgeCSS

Fixes #46
This commit is contained in:
Oliver Davies 2018-01-16 08:14:20 +00:00
parent 7bff0b26ab
commit 98c918fbe4
3 changed files with 732 additions and 116 deletions

View file

@ -3,11 +3,13 @@
"@symfony/webpack-encore": "^0.17.1",
"autoprefixer": "^7.2.4",
"font-awesome": "^4.7.0",
"glob-all": "^3.1.0",
"highlightjs": "^9.10.0",
"less": "^2.7.3",
"less-loader": "^4.0.5",
"less-plugin-npm-import": "^2.1.0",
"postcss-loader": "^2.0.10",
"purgecss-webpack-plugin": "^0.19.0",
"tailwindcss": "^0.4.0",
"webpack-notifier": "^1.5.0"
}

View file

@ -1,20 +1,48 @@
var Encore = require('@symfony/webpack-encore');
var tailwindcss = require('tailwindcss');
var glob = require('glob-all');
var path = require('path');
var PurgecssPlugin = require('purgecss-webpack-plugin');
/**
* Custom PurgeCSS Extractor
* https://github.com/FullHuman/purgecss
* https://github.com/FullHuman/purgecss-webpack-plugin
*/
class TailwindExtractor {
static extract(content) {
return content.match(/[A-z0-9-:\/]+/g);
}
}
Encore
.cleanupOutputBeforeBuild()
.setOutputPath('source/build/')
.setPublicPath('/build')
.cleanupOutputBeforeBuild()
.enableLessLoader()
.addEntry('js/site', './assets/js/main.js')
.addStyleEntry('css/site', './assets/less/main.less')
.enablePostCssLoader(function(options) {
options.config = {
path: 'config/postcss.config.js'
path: 'postcss.config.js'
};
})
.enableSourceMaps(!Encore.isProduction())
.enableVersioning(false)
.enableBuildNotifications()
;
// PurgeCSS
Encore.addPlugin(
new PurgecssPlugin({
paths: glob.sync([
path.join(__dirname, "source/**/*.{twig,html,md}")
]),
extractors: [
{
extractor: TailwindExtractor,
extensions: ['twig', 'html', 'md']
}
]
})
);
module.exports = Encore.getWebpackConfig();

810
yarn.lock

File diff suppressed because it is too large Load diff