我正在学习如何推动使用gruntjs.我找到了服务器任务,但我无法理解.
我可以使用服务器任务映射连接/缩小文件来测试我的应用程序(使用backbone.js)而无需在Web服务器根目录中移动或放置源文件吗?没有apache例如.
如果不是,服务器任务的假设用途是什么?
Jon*_*ski 80
该server任务用于启动静态服务器,并将base路径设置为Web根目录.
示例:服务./web-root为http://localhost:8080/:
grunt.initConfig({
server: {
port: 8080,
base: './web-root'
}
});
Run Code Online (Sandbox Code Playgroud)
它的功能类似于Apache服务器,根据路径提供静态文件,但通过connect使用http模块进行设置(源).
如果您需要它不仅仅提供静态文件,那么您将需要考虑定义自定义server任务:
grunt.registerTask('server', 'Start a custom web server.', function() {
grunt.log.writeln('Starting web server on port 1234.');
require('./server.js').listen(1234);
});
Run Code Online (Sandbox Code Playgroud)
和自定义服务器实例:
// server.js
var http = require('http');
module.exports = http.createServer(function (req, res) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
我可以使用服务器任务映射连接/缩小文件来测试我的应用程序[...]
级联和缩小有自己专用的任务- concat和min-但也伴随着被用在server任务完成所有3.
如果您希望它将服务器持续一段时间(以及grunt),您可以将任务定义为异步(使用服务器的'close'事件):
grunt.registerTask('server', 'Start a custom web server.', function() {
var done = this.async();
grunt.log.writeln('Starting web server on port 1234.');
require('./server.js').listen(1234).on('close', done);
});
Run Code Online (Sandbox Code Playgroud)
Gio*_*tto 53
在
server现在的任务是connect任务,它包含在grunt-contrib-connect包中.
该connect任务启动一个连接Web服务器.
使用以下命令安装此插件:
npm install grunt-contrib-connect --save-dev
Run Code Online (Sandbox Code Playgroud)
注意:
--save-dev包含您的软件包devDependencies,请参阅https://npmjs.org/doc/install.html
安装插件后,可以使用以下JavaScript代码在Gruntfile中启用它:
grunt.loadNpmTasks('grunt-contrib-connect');
Run Code Online (Sandbox Code Playgroud)
使用该grunt connect命令运行此任务.
请注意,只要grunt正在运行,此服务器就会运行.一旦grunt的任务完成,Web服务器就会停止.可以使用该keepalive选项更改此行为,并且可以通过运行任务来临时启用此行为grunt connect:targetname:keepalive.targetname在下面的代码示例中等于"server".
在这个例子中,grunt connect(或者更详细地说grunt connect:server)将启动静态Web服务器http://localhost:9001/,其基本路径设置为www-root相对于Gruntfile 的目录,之后运行的任何任务都将能够访问它.
// Project configuration.
grunt.initConfig({
connect: {
server: {
options: {
port: 9001,
base: 'www-root'
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
服务器任务的要点是对静态文件进行快速和脏访问以进行测试.grunt服务器不是生产服务器环境.它实际上只应在grunt生命周期中使用,以便将静态测试资产提供给测试环境.使用可能由NPM生命周期脚本控制的完整服务器用于生产环境.
| 归档时间: |
|
| 查看次数: |
52523 次 |
| 最近记录: |