我试图弄清楚如何最佳地优化构建文件,并遇到了压缩文本文件(如js和css)的想法。根据我所见,每篇文章都假设您有权访问webpack配置文件,或者您已退出CRA。我不想。
所以我在我的package.json文件中添加了一个后构建脚本:
"scripts": {
"build": "npm run build --prefix client",
"prod-compress": "gzip client/build/static/js/*.js && gzip client/build/static/css/*.css",
这将导致/client/build/static/js
和/client/build/static/css
文件夹如下所示:
然后我进入我的app.js文件并添加以下代码:
app.get('*.js', function(req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
res.set('Content-Type', 'text/javascript');
next();
});
app.get('*.css', function(req, res, next) {
req.url = req.url + '.gz';
res.set('Content-Encoding', 'gzip');
res.set('Content-Type', 'text/css');
next();
});
如果我了解正确的操作,则f / e /client/public/index.html
文件仍将引用常规的.js
文件。但是,当从服务器请求文件时,它将以.js.gz
文件作为响应。