Перепишите запрос файла, только если файл не существует с grunt-contrib-connect?
Я использую grunt-contrib-connect в качестве файлового сервера. Теперь я хочу переписать запросы файлов из /some/file/path/with/filename-dbg.js в /some/file/path/with/filename.js, только если / some / file / path / with / filename-dbg. JS не существует.
Моей первой мыслью было использовать grunt-connect-rewrite, но он не поддерживает что-то вроде флага -f или -d, используемого в модуле apache modrewrite.
Вторая мысль заключалась в том, чтобы добавить функцию в конфигурацию промежуточного программного обеспечения grunt-contrib-connect.
Есть идеи, как это реализовать?
С наилучшими пожеланиями, Константин
1 ответ
Вы можете достичь цели, используя grunt-connect-rewrite, просто поместите ее в качестве самого последнего промежуточного программного обеспечения. Но я бы рекомендовал использовать https://www.npmjs.org/package/http-rewrite-middleware istead в качестве более гибкого решения...
то есть окончательное решение может быть примерно таким:
var rewriteModule = require('http-rewrite-middleware');
//...
grunt.initConfig({
connect: {
options: {
port: 9000,
hostname: 'localhost'
},
development: {
options: {
middleware: function (connect, options) {
var middlewares = [];
if (!Array.isArray(options.base)) {
options.base = [options.base];
}
var directory = options.directory || options.base[options.base.length - 1];
options.base.forEach(function (base) {
// Serve static files.
middlewares.push(connect.static(base));
});
// Make directory browse-able.
middlewares.push(connect.directory(directory));
// ... everything else here
// RewriteRules support
middlewares.push(rewriteModule.getMiddleware([
{from: '^(.*)-dbg.js', to: '$1.js'}
]));
return middlewares;
}
}
}
}
});