micromatch
glob
glob允许使用规则,从而获取对应规则匹配的文件。这个glob工具基于javascript.它使用了 minimatch 库来进行匹配
minimatch
用来模式匹配字符串的库,glob库支持的的各种模式都来自于minimatch
micromatch
是minimatch的增强版本
polka
一个微型网络服务器,是一个极其小巧、性能卓越的Express.js替代品,是的,Express已经很快了,而且没有那么大🤔 , 但polka表示,还有(以某种方式)改进的空间
本质上,Polka只是一个本地HTTP服务器,增加了对路由、中间件和子应用程序的支持。就是这样!🎉
compression
JavaScript图像压缩器。使用浏览器的原生canvas.toBlob API来执行压缩工作,这意味着它是有损压缩、异步的,并且在不同的浏览器中具有不同的压缩效果。通常,在上载图像之前,使用此命令在客户端预压缩图像
sirv
用于服务静态资源请求的优化的和轻量级中间件
用法
js
const sirv = require('sirv');
const polka = require('polka');
const compress = require('compression')();
// Init `sirv` handler
const assets = sirv('public', {
maxAge: 31536000, // 1Y
immutable: true
});
polka()
.use(compress, assets)
.use('/api', require('./api'))
.listen(3000, err => {
if (err) throw err;
console.log('> Ready on localhost:3000~!');
});
const sirv = require('sirv');
const polka = require('polka');
const compress = require('compression')();
// Init `sirv` handler
const assets = sirv('public', {
maxAge: 31536000, // 1Y
immutable: true
});
polka()
.use(compress, assets)
.use('/api', require('./api'))
.listen(3000, err => {
if (err) throw err;
console.log('> Ready on localhost:3000~!');
});
etag
是否生成和添加ETag
到响应头,Etag是协商缓存
maxAge
启用响应的缓存控制头并设置最大值(以秒为单位) 例如,maxAge:31536000相当于一年
js
const serve = sirv(site.outDir, {
etag: true,
maxAge: 31536000,
immutable: true,
setHeaders(res, pathname) {
if (notAnAsset(pathname)) {
// force server validation for non-asset files since they
// are not fingerprinted
res.setHeader('cache-control', 'no-cache')
}
}
})
const serve = sirv(site.outDir, {
etag: true,
maxAge: 31536000,
immutable: true,
setHeaders(res, pathname) {
if (notAnAsset(pathname)) {
// force server validation for non-asset files since they
// are not fingerprinted
res.setHeader('cache-control', 'no-cache')
}
}
})