Я использую Purgecss через Webpack (er) для удаления неиспользуемых классов CSS Tailwind в приложении.
Основы все работают, но я сталкиваюсь с интересной проблемой, связанной с кэшированием.
Похоже, что хеш файла, сгенерированный webpack, предназначен для файла перед его обработкой purgecss.Это означает, что даже если содержимое файла изменяется, поскольку файл CSS кэшируется на CDN, изменения не регистрируются (если только я не очищаю кэш CDN или явно не изменяю файл CSS).
Любые предложения о том, как изменить хэш файла, основанный на конечном результате?
Вот моя конфигурация для Purgecss:
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
const environment = require('./environment')
const path = require('path')
const PurgecssPlugin = require('purgecss-webpack-plugin')
const glob = require('glob-all')
// ensure classes with special chars like -mt-1 and md:w-1/3 are included
class TailwindExtractor {
static extract(content) {
return content.match(/[A-z0-9-:\/]+/g);
}
}
environment.plugins.append('PurgecssPlugin', new PurgecssPlugin({
paths: glob.sync([
path.join(__dirname, '../../app/javascript/**/*.js'),
path.join(__dirname, '../../app/views/**/*.erb')
]),
extractors: [ // if using Tailwind
{
extractor: TailwindExtractor,
extensions: ['html', 'js', 'erb']
}
]
}));
module.exports = environment.toWebpackConfig()
Спасибо, Скотт
PS Я создал полный пример, если это поможет: https://github.com/scottwater/rails_webpacker_with_purgecss_example.