connect
connect: {
options: {
...
},
proxies: [{...
}],
livereload: {
options: {
base: gruntTargetPath,
open: true,
middleware: function(connect, options, middlewares) {
return [
...,
connect.static('.tmp'),
connect().use('/bower_components', connect.static('./bower_components')),
connect.static(config.app)
];
}
}
}
}
当我执行bash - grunt connect:livereload
时,它会提示 -
Warning: undefined is not a function Use --force to continue.
Aborted due to warnings.
(关于connect
参数,我查了一下。)
如何正确传递此参数?
答案 0 :(得分:1)
您似乎在调用connect而不是在此处引用它:
connect().use
应为connect.use
<强>更新强>
查看文档,中间件函数应该返回一个带有签名(req, res, next)
的函数数组,但是当前您正在从use
和{{1}传递一组返回值方法可以是任何东西。
他们的示例将函数插入middlewars数组,然后返回它:
static
如果您想坚持使用当前返回数组文字的方法,请确保每个数组项都是具有预期签名的函数:
middlewares.unshift(function(req, res, next) {
if (req.url !== '/hello/world') return next();
res.end('Hello, world from port #' + options.port + '!');
});
return middlewares;