Articles of gruntjs

咕噜茉莉节点testing运行两次

我设置了grunt来运行node.js茉莉花testing。 出于某种原因,使用此configuration,结果总是显示双倍的testing。 这是我的configuration: 我正在使用插入grunt的茉莉花节点 。 /spec/some-spec.js : var myModule = require('../src/myModule.js'); describe('test', function(){ it('works', function(done){ setTimeout(function(){ expect(1).toBe(1); done(); }, 100); }); }); Gruntfile.js : module.exports = function(grunt) { grunt.initConfig({ jasmine_node: { options: { forceExit: true }, all: ['spec/'] } }); grunt.loadNpmTasks('grunt-jasmine-node'); grunt.registerTask('default', ['jasmine_node']); }; 这导致两个testing运行,而不是一个。 > grunt Running "jasmine_node:all" (jasmine_node) task .. Finished in 0.216 […]

节点Gruntasynchronous任务循环与闭合不起作用

预先感谢您看看这个。 我有一个循环中的asynchronous任务不工作。 我已经确定: 将我的循环variables“key”封装在闭包中,以避免经典的“仅限最后一个值”的问题,循环在asynchronous任务返回一个值之前完成很长时间,只显示最后一个值。 调用完成(错误)完成我的asynchronous任务(根据Gruntjs常见问题解答) 使用hasOwnProperty()来确保键是对象的实际属性,而不是来自原型。 遵循node.exec例子的格式,除了把exec的值赋给一个variables – 我试过了,但是没有帮助。 见下面的第一个参考。 这个函数输出…什么都没有! 出于某种原因,grunt.log.writeln语句甚至没有发射。 任务完成没有错误。 我还尝试添加20秒的延迟,以防脚本在asynchronous任务返回之前完成。 奇怪的是,如果我不叫“完成(错误),”文件被写入文件(当我用grunt.file.write语句replacewriteln的)。 var done = this.async(), exec = require('child_process').exec, myJSON = { "file1" : "C:/home/me/jquery.js", "file2 " : "C:/home/me/grunt.js", … "fileN" : "C:/home/me/N.js" }, count; for (var key in myJSON) { if (myJSON.hasOwnProperty(key)) { (function (key) { exec( 'type "' + myJSON[key] […]

如何让grunt.js启动一个快速的应用程序进行testing

我目前的情况是,我用grunt来制作我的快速应用程序的生产版本(最小化和合并所有js / css,复制所有文件到位),然后我必须运行一个脚本,设置一个环境variables(我的应用程序只在TEST模式下运行testing工具),创build一个空的Mongotesting数据库,然后在应用程序目录中调用npm start,然后我手动运行Chrome或Phantom的testing,我想要做的是grunt设置环境variables并运行服务器,运行testing,然后停止服务器(将来如果所有的都成功了,最好也部署它)。 但是,当我尝试在咕噜声中运行该应用程序时,一旦完成,它就会停止。 我该如何让grunt启动应用程序,等待启动,然后运行testing?

如何在gruntjs任务中运行MULTIPLE shell命令?

我目前使用grunt-shell从一个咕 task任务运行shell命令。 有没有更好的方法来运行多个命令在一个任务,而不是串在一起'&&'? 我的Gruntfile(部分): grunt.initConfig({ shell: { deploy: { options: { stdout: true }, command: 'mkdir -p static/styles && cp public/styles/main.css static/styles' } } }); 一组命令不起作用 ,但它会很好: grunt.initConfig({ shell: { deploy: { options: { stdout: true }, command: [ 'mkdir -p static/styles', 'cp public/styles/main.css static/styles' ] } } });

是否有可能提示用户input任何咕噜任务?

我试图使用Grunt在一个项目中创build一个新的博客文章目录。 它本质上将创build一个名为YYYYMMDDDD-PostNameInPascalCase的posts目录内的目录。 为了做到这一点,我每次执行任务时都必须提示用户input用户名。 我知道grunt-init提示用户从项目模板创build项目,但我很好奇,如果有一种方法可以在Gruntfile.js文件中为已经build立的项目执行此操作。 有什么想法吗?

CSSLint:如何configuration任务只是打印错误不警告

我是Grunt – csslint插件的新手,在我运行完cssLint任务之后,有很多错误和警告我无法遵循。 那么如何configuration任务只是打印出来的错误,而不是警告?

如何创build一个引用其他咕噜任务的咕task任务

我有一个grunt文件,我正在使用它来构build我的web应用程序。 这个咕噜文件使用几个clean contrib插件,如clean , copy , compass , cssmin等来正确构buildWeb应用程序。 这个咕噜文件也应该处理生成CSS和复制文件来创build主题CSS文件。 目前,我正在为每个主题的clean , copy和compass (等)任务添加目标。 这在grunt文件中变得笨拙,并且在添加新主题时会使其变得困难和容易出错。 为了使事情变得更容易,我真的很想创build自己的自定义“主题” grunt任务,在内部使用其他grunt contrib任务( clean , copy , compass等)来执行指定主题的所有必要任务。 只有less量configuration数据的主题(主要是它的源文件夹),我会有足够的信息来调用其他任务(因为主题源和目标文件是非常约定驱动)。 我似乎无法find一种方法来调用我的自定义任务中的任务,我可以做到这一点,并以编程方式指定所有的configuration选项,文件等。 有没有人有任何想法我可以做到这一点? 谢谢,埃德

使用grunt或节点服务器启动服务器时出错

我正在尝试使用这里描述的平均堆栈: http : //mean.io/ 安装完成后,制作“grunt”时出现错误: debugger listening on port 5858 4 Jan 01:47:40 – [nodemon] reading ignore list Express app started on port 3000 events.js:72 throw er; // Unhandled 'error' event ^ Error: failed to connect to [localhost:27017] at null.<anonymous> (/mean/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:540:74) at EventEmitter.emit (events.js:106:17) at null.<anonymous> (/mean/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15) at EventEmitter.emit (events.js:98:17) at Socket.<anonymous> (/mean/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10) at Socket.EventEmitter.emit […]

在node / Grunt中执行操作系统特定的脚本

我有一个Grunt任务在本地机器上执行.cmd文件来做它的事情。 我需要在CI服务器上使用这个任务,这是一台Linux机器。 我有相关的.sh(用于Linux的shell脚本)。 我需要一种方法来执行这两个不更改我的Gruntfile。 目前,我必须更改我的Gruntfile,使其在本地为Windows和远程文件使用.sh。 任何解决scheme做同样是受欢迎的。 检测底层操作系统? 或者调用相同的命令,内部调用特定于操作系统的命令?

在本地安装节点Grunt

我正在修改我的构build系统,我已经阅读了node.js和grunt是一个很好的方法。 我从来没有用过,而且我有点麻烦。 问题是我想build立一个可以包含在我的项目的版本控制中的可移植构build环境(也许这是不可能的)。 获取node.js和npm工作已经没有问题了。 但是,我所看到的安装grunt的每条指令都表示在全局安装npm时使用-g标志。 因为我想要一个完全便携的环境,所以我试图放弃这个环境,但是我不能工作。 我是否错过了一些东西,或者是我试图做不到的事情?