2015-10-06 11 views
19

YOはlessappプロジェクトを使用しています。 "grunt-contrib-connect"は9000ポートでノードjsサーバーを起動するのに役立ちます。 grunt serve(サーバーの起動)を実行すると、以下の警告が原因でサービスが中止されます。警告:connect.staticは関数ではありません。-force to continueを使用します。

Running "connect:livereload" (connect) task 
Warning: connect.static is not a function Use --force to continue. 

正確なエラーは、私が npm install grunt-contrib-connect --save-devnpm install serve-static --save-dev

をインストールしているGruntfile.js

livereload: { 
     options: { 
      middleware: function(connect) { 
      return [ 
       connect.static('.tmp'), 
       connect().use('/bower_components', connect.static('./bower_components')), 
       connect.static(config.app) 
      ]; 
      } 
     } 
     }, 

に以下の機能で行われた、私はいくつかの記事に出くわした、いくつかは、オフにすることをお勧めファイアウォールは運がない。

他のマシンから同じアプリケーションを実行しようとしたため、マシンまたはnpm/node /バージョン間の競合があることがわかりました。うまく動作します。

システム構成:

  • のWindows 7 Professionalの
  • ノード-v4.1.2
  • NPM -v2.14.4
  • 私が接続インストールされている

[email protected]ポストに基づいて静的にサービスを提供する。nodejs connect cannot find static、しかし依然として同じ

助けが必要ですか?

npm install --save-dev grunt-contrib-connect serve-static 

そしてあなたはserve-staticGruntfile.jsにインポートする必要があります:バージョン0.11.xから

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

おかげで、それはサーブ静的作男内で必要とした後に動作します。 – kishorekumaru

答えて

53

事前に感謝サポートconnect.staticおよびconnect.directory
serve-static(静的ファイルの提供用)とserve-index(特定のパスのディレクトリ一覧を含むServesページ用)をインストールする必要があります。このような


var serveStatic = require('serve-static');
var serveIndex = require('serve-index');

使用serveStaticあなたのソリューションの代わりにconnect.static代わり

serveIndexconnect.directory

grunt.initConfig({ 
    connect: { 
     options: { 
      test: { 
       directory: 'somePath', 
       middleware: function(connect, options){ 
        var _staticPath = path.resolve(options.directory); 
        return [serveStatic(_staticPath), serveIndex(_staticPath)] 
       } 
      } 
     } 
    } 
}) 
20

は、新しいgrunt-contrib-connectにはないあなたがconnectserve-staticをインストールする必要が

+0

この回答に続いて、それは私のために働いた 'require( 'serve-static')(.tmp)'です – singsuyash

関連する問題