如何将自定义express服务器与grunt(+;livereload,+;节点检查器)一起使用?(约曼客户端架构)
我在这里做过: 在GrunFile中,配置:如何将自定义express服务器与grunt(+;livereload,+;节点检查器)一起使用?(约曼客户端架构),express,gruntjs,Express,Gruntjs,我在这里做过: 在GrunFile中,配置: server: { port: 80, base: yeomanConfig.app } }); 然后 Test.js: var express = require('express'); app = module.exports = express(); 当我转到http://localhost/I get:“无法获取/”错误;为什么? 我甚至尝试了另一个教程: grunt.registerTas
server: {
port: 80,
base: yeomanConfig.app
}
});
然后
Test.js:
var express = require('express');
app = module.exports = express();
当我转到http://localhost/
I get:“无法获取/”错误;为什么?
我甚至尝试了另一个教程:
grunt.registerTask('server', 'Start a custom web server.', function() {
grunt.task.run([
'clean:server',
'devcode:server',
'concurrent:server',
'autoprefixer',
'watch'
]);
var done = this.async();
require('./server/test.js').listen(80).on('close', done);
});
但也不起作用。原因是您没有告诉express提供任何服务。您可以看到,如果您只制作一个简单的应用程序并获取localhost:8080:
var express = require('express');
var app = express();
app.listen(8080);
在Grunt文件中,您至少需要设置一些静态路径或路由(如果需要,还需要实时重新加载):
同样在我的例子中,我至少不需要异步任务,因为它阻止了livereload的工作
要将节点检查器与grunt结合使用,只需使用node显式启动grunt:
node --debug `which grunt` server
然后您可以运行node inspector并像往常一样连接原因是您没有告诉express提供任何服务。您可以看到,如果您只制作一个简单的应用程序并获取localhost:8080:
var express = require('express');
var app = express();
app.listen(8080);
在Grunt文件中,您至少需要设置一些静态路径或路由(如果需要,还需要实时重新加载):
同样在我的例子中,我至少不需要异步任务,因为它阻止了livereload的工作
要将节点检查器与grunt结合使用,只需使用node显式启动grunt:
node --debug `which grunt` server
然后,您可以像往常一样运行节点检查器并进行连接这帮助我解决了同样的问题:使用 在您的
server.js
中:
grunt.loadNpmTasks('grunt-express-server');
...
grunt.initConfig({ ...
express: {
options: {
port: 3000,
debug: true
},
server: {
options: {
script: 'server/server.js'
}
}
}, ...
var express = require('express');
var app = module.exports = express();
app.configure(function () {
app.set('port', process.env.PORT || 3000);
});
...
//define routes
...
app.listen(app.get('port'));
console.log('Listening on port ' + app.get('port'));
这也帮助我解决了同样的问题:使用 在您的
server.js
中:
grunt.loadNpmTasks('grunt-express-server');
...
grunt.initConfig({ ...
express: {
options: {
port: 3000,
debug: true
},
server: {
options: {
script: 'server/server.js'
}
}
}, ...
var express = require('express');
var app = module.exports = express();
app.configure(function () {
app.set('port', process.env.PORT || 3000);
});
...
//define routes
...
app.listen(app.get('port'));
console.log('Listening on port ' + app.get('port'));
谢谢,现在可以用了。(您仍然需要将module.exports=app放入test.js文件中)。但是节点检查器不工作。错误:connect EconRefused节点运行时使用--debug端口5858?我还添加了:var pathToApp=path.resolve(_dirname+'/../app');var pathToTmp=path.resolve(_dirname+'/...tmp');app.use('/',express.static(pathToApp));app.use('/',express.static(pathtomp));用于与使用节点检查器指令编辑的源文件一起使用。我得到:找不到模块“which”。我真的不明白你的命令谢谢,现在它起作用了。(您仍然需要将module.exports=app放入test.js文件中)。但是节点检查器不工作。错误:connect EconRefused节点运行时使用--debug端口5858?我还添加了:var pathToApp=path.resolve(_dirname+'/../app');var pathToTmp=path.resolve(_dirname+'/...tmp');app.use('/',express.static(pathToApp));app.use('/',express.static(pathtomp));用于与使用节点检查器指令编辑的源文件一起使用。我得到:找不到模块“which”。我不太明白你的命令