2014-05-05 41 views
3

我通常咕嘟咕嘟開始我的服務器的NodeJS,類似於一個任務:使用虛擬主機時,可以運行Gulp或Grunt任務嗎?

gulp.task('server', function(){ 

    var port = gulp.env.port || 80; 

    plugins.nodemon({ 
    script: 'server.js', 
    ignore: '*', 
    }).on('start', ['source','watch:source']); 

}); 

,編譯所有的翡翠&薩斯模板,並轉儲到一個文件夾中的資產。

對於我目前的項目,我介紹了vhosts,這樣我就可以爲不同的節點應用程序提供[X] .mysite.com。我不知道如何在啓動父服務器時運行我的gulp文件。我是否應該在父目錄中放入一個gulp文件,並將每個vhost應用程序的所有任務都包含在該目錄中? 'npm install'和'bower install'同樣的問題。

tl; dr:如何在使用ExpressJS時爲每個虛擬主機應用程序運行Gulp或Grunt任務? 'npm install'和'bower install'同樣的問題。

+0

vhost表示您正在使用服務器(如nginx)來配置路由。我不知道你作爲虛擬主機提出的問題(假設nginx或apache)只是你的節點應用的代理 – SteveLacy

+1

不,我正在使用vhost中間件進行Express。沒有nginx。 – elliottregan

回答

1

使用這種文件夾結構:

vhost(d) 
    - website1(d) 
    - app.js 
    - public(d) 
     - index.html 
    - website2(d) 
    - app.js 
    - public 
     - index.html 
server.js 

您server.js文件應該是這樣:

"use strict"; 
    var 
    express = require('express'), 
    vhost = require('vhost'), 
    app = express(), 
    website1 = require('./vhost/website1/app'), 
    website2 = require('./vhost/website2/app'), 
    port = process.env.PORT || 8080; 

app   
    .use(vhost('localhost', website)) 
    .use(vhost('cms.localhost', cms)) 
    .listen(port, function() { 
    console.log('server listening on port ' + port); 
    }); 

您app.js在WEBSITE1文件夾中的文件應該是這樣的:

var 
express = require('express'), 
app = express() 

app.use(express.static(__dirname + '/public')); 
app.get('/', function(req, resp) { 
    resp.sendFile(__dirname + '/public/index.html'); 
}); 

module.exports = app; 

同樣的事情應該是爲網站2/app.js文件

寫信你一飲而盡任務,並在項目運行的主目錄啓動server.js

gulp.task('serve', function(){ 

    var port = gulp.env.port || 8080; 

    plugins.nodemon({ 
    script: 'server.js', 
    ignore: '*', 
    }).on('start', ['source','watch:source']); 

}); 

gulp serve 

享受!

相關問題