我正在通过Webpack(er)使用Purgecss来删除应用程序上未使用的Tailwind CSS类。
所有基础知识都可以使用,但是我遇到了一个与缓存有关的有趣问题。
由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()
谢谢, 斯科特
P.S。如果有帮助,我建立了一个完整的示例:https://github.com/scottwater/rails_webpacker_with_purgecss_example。