Node.jsでオフラインで動くHTML5のWebアプリを作るときに、connect-cache-manifestを使う に書いた2つの不満を解消するために connect-cache-manifest を改良しました。
今回の修正点は2つ。 1つはファイルを除外するオプション、もう一つはファイル名とURLのパスが同一でない場合に書き換えるオプションです。
説明よりコードを読んだほうが分かりやすいと思ます。
var express = require('express');
var cacheManifest = require('connect-cache-manifest');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(cacheManifest({
manifestPath: '/application.manifest',
files: [{
dir: __dirname + '/public',
prefix: '/static/',
ignore: function(x) {
return (/(?:\.swp|~)$/).test(x);
}
}, {
dir: __dirname + '/views',
prefix: '/html/',
ignore: function(x) {
return (/(?:\.swp|~)$/).test(x);
},
replace: function(x) {
return x.replace(/\.jade$/, '.html');
}
}],
networks: ['*'],
fallbacks: []
}));
app.use('/static', express.static(path.join(__dirname, 'public')));
app.get('/html/:name', function(req, res) {
res.render(req.params.name);
});
このように、ignore
とreplace
がオプション指定できるようになりました。
これで、バックアップファイルは除外されるし、jadeファイルが増えてもリストアップする必要がありません。とても便利です。
コメント