我正在使用YO lessapp项目,"grunt-contrib-connect"帮助我在9000端口上启动node js服务器。每当我运行grunt serve(启动服务器)时,由于下面的警告,服务被终止。
Running "connect:livereload" (connect) task
Warning: connect.static is not a function Use --force to continue.
确切的错误发生在Gruntfile.js中的以下函数
livereload: {
options: {
middleware: function(connect) {
return [
connect.static('.tmp'),
connect().use('/bower_components', connect.static('./bower_components')),
connect.static(config.app)
];
}
}
},
我已经安装了npm install grunt-contrib-connect --save-dev
,npm install serve-static --save-dev
我看到一些帖子,一些建议关闭防火墙,但没有运气。
我知道这与我的机器或npm/node/connect版本冲突有关,因为我试图在其他机器上运行相同的应用程序,它工作得很好。
系统配置:
- Windows 7 Professional
- Node -v4.1.2
- npm -v2.14.4
- connect@3.4.0
我已经安装了连接和服务静态基于后nodejs连接找不到静态,但仍然相同
帮忙吗?
您必须安装connect
和serve-static
:
npm install --save-dev grunt-contrib-connect serve-static
然后你要导入serve-static
到Gruntfile.js
:
module.exports = function (grunt) {
...
var serveStatic = require('serve-static');
grunt.initConfig({
...
connect: {
...
livereload: {
options: {
middleware: function(connect) {
return [
serveStatic('.tmp'),
connect().use('/bower_components', serveStatic('./bower_components')),
serveStatic(config.app)
];
}
}
}
从0.11版开始。x,新的grunt-contrib-connect
不支持connect.static
和connect.directory
。
您应该安装serve-static
(用于提供静态文件)和serve-index
(用于包含给定路径的目录清单的服务页面)。
: var serveStatic = require('serve-static');
var serveIndex = require('serve-index');
用serveStatic
代替connect.static
和serveIndex
代替connect.directory
grunt.initConfig({
connect: {
options: {
test: {
directory: 'somePath',
middleware: function(connect, options){
var _staticPath = path.resolve(options.directory);
return [serveStatic(_staticPath), serveIndex(_staticPath)]
}
}
}
}
})