警告:connect.static不是函数使用--force继续

时间:2015-10-06 03:13:44

标签: gruntjs npm grunt-contrib-connect

我正在使用YO lessapp项目,“grunt-contrib-connect”帮助我在9000端口上启动节点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-devnpm install serve-static --save-dev

我发现了一些帖子,有人建议关闭防火墙,但没有运气。

我知道我的机器或npm / node / connect版本冲突有关,因为我试图从其他机器运行相同的应用程序,它运行正常。

系统配置:

  • Windows 7专业版
  • 节点-v4.1.2
  • npm -v2.14.4
  • connect@3.4.0

我已根据帖子nodejs connect cannot find static安装了connect和serve-static,但仍然是相同的

有任何帮助吗?在此先感谢

1 个答案:

答案 0 :(得分:61)

您必须安装connectserve-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)
            ];
          }
        }
      }