2015-05-31 22 views
1

我使用Express 4.12來構建我的項目,並且我想用grunt-express來啓動我的應用程序。我已經知道,快遞4.12開始通過節點./bin/www的應用程序,所以我寫這樣的Gruntfile.js:如何使用grunt-express快遞4.12?

express: { 
    dev: { 
    options: { 
     port: 3000, 
     bases: path.resolve('bin/'), 
     server: path.resolve('bin/www') 
    } 
    } 
} 

grunt.loadNpmTasks('grunt-express') 
grunt.registerTask('default', ['express', 'express-keepalive']); 

不幸的是,當我運行的呼嚕聲,它報告錯誤:

Fatal error: Server should provide a function called "listen" that acts as http.Server.listen 

但是我發現,在WWW文件中,有一個功能「聽」:

var server = http.createServer(app) 
server.listen(port); 

我很困惑這個問題。你能教我寫www文件的Gruntfile.js 嗎?

回答

1

grunt-express服務器選項希望看到一個快速應用程序,這不是什麼bin/www是。如果你看bin/www,它需要一個快速應用程序是什麼?例如,它應該是項目根目錄中的app.js,或者可能是server/index.js

此外,您bases可能不應該bin,而是應該指向公共靜態資源目錄,例如:/public或者如果你有一個生成縮小的東西,一個構建步驟可能是/dist

試試這個(編輯服務器和基地,以適合自己的項目):

grunt.initConfig({ 
    express: { 
     options: { 
      port: 3000, 
      hostname: 'localhost' 
     }, 
     dev: { 
      options: { 
       server: path.resolve('./app.js'), 
       bases: [path.resolve('./public')] 
      } 
     } 
    } 
});