我通常使用Gulp启动我的NodeJS服务器,任务类似于:
gulp.task('server', function(){
var port = gulp.env.port || 80;
plugins.nodemon({
script: 'server.js',
ignore: '*',
}).on('start', ['source','watch:source']);
});
编译我所有的玉&;Sass模板并将它们转储到assets文件夹中。
对于我目前的项目,我正在引入vhosts,这样我就可以为不同的节点应用程序拥有一个[X].mysite.com。当我启动父服务器时,我不确定如何运行我的gulpfile。我是否应该在父目录中放置一个gulpfile,并在其中包含每个vhost应用程序的所有任务?'npm install'和' wer install'也是同样的问题。
tl;dr:如何在使用ExpressJS时为每个vhost应用程序运行Gulp或Grunt任务?'npm install'和' wer install'也是一样。
使用这个文件夹结构:
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);
});
你在website1文件夹中的app.js文件应该看起来像:
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;
对于website2/app.js文件
也是如此现在编写gulp任务并启动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
享受吧!