bsr*_*bsr 5 javascript gruntjs yeoman
我设置了Yeoman 1.0 beta来处理我的js/css任务.一切正常,如果我运行grunt server,它会启动静态服务器并将浏览器会话连接到端口9000(livereload).js/css concat,minification也在工作.
现在,有没有办法让它连接到谷歌应用程序引擎开发服务器(而不是启动静态服务器).服务器在localhost上的端口8080上运行,我希望grunt在watch下的css/js文件上重新加载网页.这些文件将由GAE服务器提供.
我rolling your own在grunt-contrib-connect 文档中看到了一个部分,但不确定它是否意味着外部服务器.据我所知,这些是Gruntfile.js的相关配置
connect: {
livereload: {
options: {
port: 8080, //*** was 9001 originally **
middleware: function (connect) {
return [
lrSnippet,
mountFolder(connect, '.tmp'),
mountFolder(connect, yeomanConfig.app)
];
}
}
},
Run Code Online (Sandbox Code Playgroud)
当我将端口号更改为8080并尝试启动时,显然它会出错.
致命错误:端口8080已被其他进程使用.
所以,我不想启动新服务器,而是通过已经运行的GAE服务器连接.
谢谢.
为了使用GAE服务器而不是nodejs服务器,我们需要执行以下操作.
*编译你的less/coffeescript,concat [,minify],将你的代码复制到app引擎代码所在的位置.
*在grunt.js中创建一个任务,以生成一个shell命令来运行app引擎.
这是我用作参考的例子.https://github.com/cowboy/grunt/tree/master/tasks
以下grunt.js文件可能有所帮助!
module.exports = function(grunt) {
grunt.initConfig({
....
});
grunt.registerTask('appengine-update', 'Upload to App Engine.', function() {
var spawn = require('child_process').spawn;
var PIPE = {stdio: 'inherit'};
var done = this.async();
spawn('appcfg.py', ['update', 'build/task-manager-angular'], PIPE).on('exit', function(status) {
done(status === 0);
});
});
grunt.registerTask('clean', 'Clean the whole build directory.', function() {
require('child_process').exec('rm -rdf build', this.async());
});
grunt.registerTask('run', 'Run app server.', function() {
var spawn = require('child_process').spawn;
var PIPE = {stdio: 'inherit'};
var done = this.async();
spawn('dev_appserver.py', ['.'], PIPE).on('exit', function(status) {
done(status === 0);
});
});
});
//....
//Other settings
//....
grunt.loadTasks('tasks');
grunt.loadNpmTasks('grunt-coffeelint');
grunt.registerTask('build', 'coffee less concat');
grunt.registerTask('deploy', 'coffee less concat build appengine-update');
grunt.registerTask('default', 'coffee less');
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2536 次 |
| 最近记录: |