Tag: gruntjs

Grunt watch&LESS – 如何让它更快? (只编译已更改的文件)

我有一个基本的应用程序使用LESS和grunt watch来即时编译更改。 由于很长一段时间我抱怨说,当我改变任何LESS文件,所有得到重新编译。 我浪费时间,不能仅仅编译所需的东西。 但我希望它很聪明,所以如果有任何import它也会编译受影响的文件,而不仅仅是被修改的文件。 今天我决定解决这个问题。 这并不容易。 Grunt手表并不关心这一点,即使使用grunt-newer也没有解决,在这两种情况下都需要编写自定义规则。 最后,我没有使用https://github.com/tschaub/grunt-newer,因为它不适合使用grunt-sync,但更重要的是,由于它不适合我的需求,因为它可以“对付LESSimport的东西,所以它不会编译相关的文件,但只有文件被更改,这不是“聪明”。 (可以对其进行定制以考虑这种东西,而且人们提供了一些要点,但没有任何官方的回购,所以很难find你需要的东西,但绝对值得一看。) 这是一个问题多次问,没有真正的或简单的答案。 看到: 你如何看多个文件,但只能在Grunt.js中运行更改后的文件的任务? Grunt watch:只编译一个文件不是全部 Grunt只监视更改的文件 Grunt:观看多个文件,只编译更改 https://github.com/tschaub/grunt-newer/issues/29 https://gist.github.com/cgmartin/10328349

获取Grunt.js来运行node.js模块

我写了一个node.js模块,可以使用'require'从文件运行,也可以从terminal运行节点copyright.update()。 我很高兴与这个function,它在两种情况下都可以工作。 我想也能够从Gruntfile.js运行它。 目前我的咕噜文件看起来像这样: module.exports = function(grunt) { grunt.initConfig({ "update-copyright": { "run": true } }); grunt.task.loadTasks('./runner'); }; 运行程序目录中的脚本如下所示: var copyright = require('./update-copyright'); module.exports = function(grunt) { grunt.registerMultiTask('update-copyright', 'update copyright headers', function() { var done = this.async(); copyright.update(done); }); }; 当我运行“grunt update-copright”时,我得到了通常的完成,没有错误,但实际上没有执行任何操作。 我确定我错过了一些简单的事情。 任何帮助是极大的赞赏!

/ node_modules / jpegtran-bin / vendor / jpegtran:语法错误:“(”文件中意外

我的grunt文件在我的MacBook Pro上本地运行,但在我的Ubuntu Plesk服务器上不能运行,不知道是哪里出了问题。 非常感谢你的帮助。 我已经注释了一个引用巨型图像库的部分,并在Dropbox images.tar.gz中附加了一个小图像目录 images.tar.gz 在terminal解压: tar -zxvf images.tar.gz 如何删除由OSX生成的恼人的。 root @ vs1:/ images# find。 -iname'._ *'-exec rm -rf {} \; 我收到以下错误信息: 运行“imagemin:dynamic”(imagemin)任务警告:错误:错误:写入EPIPE / var / www / vhosts / staging.specialistreferrals.co.nz / httpdocs / node_modules / jpegtran-bin / vendor / jpegtran:1:/ var / www / vhosts / staging.specialistreferrals.co.nz / httpdocs / node_modules / […]

(蓝鸟)中的咕噜声无声错误?

我有一个以main()函数为起点的npm模块。 现在,让我们说我在这个main()抛出一个Error,如下所示: function main() { throw new Error("An error!"); } 然后用node my-app-that-launchers-main.js执行它,然后显然,错误被抛出,我得到一个node my-app-that-launchers-main.js 。 如果我为此写一个咕噜的任务: var mynpm = require("mynpm"); module.exports = function(grunt) { grunt.registerTask("build",function() { mynpm.build(); }); } 并通过Grunt执行它,然后失败。 如预期的那样,错误被抛出,咕噜声失败。 不过,如果我把这个扔在蓝鸟的承诺里面: function main() { Promise.try(function(resolve) { throw new Error("An error!"); } ).catch(function() { console.log("error"); } ).finally(function() { console.log("finally"); }); } 并通过node运行,然后我看到catch函数被调用。 正如所料。 但是,如果我通过Grunt的registertask运行相同的代码,一切都变得沉默。 也不是finally的结果。 什么可能造成这一点。 […]

从远程Gruntfile.js加载grunt任务

在项目的根目录中,我试图从远程的Gruntfile.js加载Grunt任务和文件的所有内容,通过networking(networking或内部networking)访问。 我已经尝试了几件事(见下文),首先在本地Apache服务器上托pipeGruntfile.js以进行testing。 使用–gruntfile选项 > /project/path> grunt –gruntfile=http://localhost/Gruntfile.js build Reading "Gruntfile.js" Gruntfile…ERROR Fatal error: Unable to find "/project/path/http://localhost/Gruntfile.js" Gruntfile. 使用–base选项 > /project/path> grunt –base=http://localhost/Gruntfile.js build process.chdir(grunt.option('base') || path.dirname(gruntfile)); Error: ENOENT, no such file or directory 在我的项目的根目录下创build一个Gruntfile.js ,它只包含以下代码: module.exports = function (grunt) { grunt.loadTasks( 'http://localhost/Gruntfile.js' ); }; 结果是: > /project/path> grunt build >> Tasks directory "http://localhost/Gruntfile.js" not […]

用grunt-karma-sonar进行unit testing

我正在尝试使用Grunt,Karma和Sonar进行unit testing和testing覆盖。 我正在通过这个教程 。 这是我的依赖: "devDependencies": { "bower": "~1.3.1", "grunt": "~0.4.4", "grunt-autoprefixer": "~2.0.0", "grunt-cli": "~0.1.13", "grunt-contrib-jasmine": "~0.6.1", "grunt-karma": "~0.8.0", "grunt-karma-sonar": "~0.1.3", "istanbul": "~0.4.2", "jasmine-core": "~2.3.4", "karma": "~0.12.0", "karma-chrome-launcher": "~0.1.12", "karma-coverage": "~0.2.0", "karma-firefox-launcher": "~0.1.6", "karma-jasmine": "~0.2.1", "karma-junit-reporter": "~0.2.1", "karma-phantomjs-launcher": "~0.1.2", "karma-junit-sonarqube-reporter": "0.0.1", "load-grunt-tasks": "^3.4.0", "phantomjs": "~1.9.19", } 这是我的gruntfile: //require('load-grunt-tasks')(grunt); module.exports = function (grunt) { var $srcFiles […]

将价值从conf.js传递给一个咕task任务或咕噜任务

如何在grunt任务之间传递信息? 我想从一个grunt task任务传递一个价值到另一个grunt task任务。 我的情况是,在完成量angular器testing之后,我想把一个价值传递给一个新的grunt task任务。 为了达到这个目的,我继续在process.env设置值,并尝试在新的grunt任务中使用process.env 。 但是这似乎并不奏效 这是conf.js : afterLaunch: function(exitCode) { return new Promise(function(fulfill, reject) { if (typeof jasmine.getEnv().testReportFilePath !== 'undefined' && jasmine.getEnv().testReportFilePath !== null) { process.env.testReportFilePath = jasmine.getEnv().testReportFilePath; console.log('Trying: ' + process.env.testReportFilePath); fulfill('Success: Environment variable testReportFilePath is set in conf.js'); } else { reject(new Error('Failed: Environment variable testReportFilePath not set in […]

在CLI中input“bower”,让它从当前目录运行本地版本?

我有几个不相关的项目使用bower 。 我想知道在全球或本地安装bower是否更好。 在“全局”情况下,如果项目升级到具有重大更改的新版本(例如,不再支持标志),则所有其他项目都可能受到影响。 在只有本地的情况下,你会得到项目隔离,但在CLI中,而不是仅仅 > bower install 你必须跑步 > node ./node_modules/bower/bin/bower install 这是一个键盘满。 对于其他节点工具(例如grunt,karma),存在单独的可全球安装的软件包(grunt-cli,karma-cli): 可以从任何地方运行 只是简单的.cmd文件 看看CWD并select当地版本的grunt / karma,并用原始参数运行 …所以你得到两全其美。 对于凉亭,奇怪的是,没有凉亭包。 任何想法为什么? 而且,更重要的是,是否有一个(简单的)方法可以使bower命令从任何地方运行,但是针对安装在当前工作目录下的bower版本? 顺便说一句,我在Windows上。

在Grunt服务器中安装经过身份validation的公司代理

我开始在现有的Angular JS应用程序上工作,但是我无法使它在公司代理的后面工作。 在应用程序中,所有后端Web服务调用都使用Gruntfile.js中的代理configurationredirect到不同的服务器(如https:// servicesURL / api / )。 如果我在经过身份validation的公司代理之外运行应用程序,则完美工作,但是在代理后面,我发现所有的Web服务调用都失败,出现错误: An error has occurred: {"code":"ENOTFOUND","errno":"ENOTFOUND","syscall":"getaddrinfo","hostname":"servicesURL","host":"servicesURL","port":443} grunt文件代理configuration如下: connect: { options: { port: 9005, hostname: 'localhost', useAvailablePort: true, livereload: 35712 }, proxies: [ { context: ['/api'], host: 'serviceURL', port:443, https: true, xforward: true } ], livereload: { options: { middleware: function (connect) { return [ connect.static('.tmp'), connect().use( '/bower_components', […]

增加成功构buildNPM / Grunt版本 – 竹子

我有一个当前安装的Bamboo服务器来testing我的项目上的构build。 我想使用NPM版本或grunt bump来开始版本化我的项目。 这是我现在的Bamboo设置, Bamboo检测到回购变化 运行所有的testing 如果分支是“主”分支,那么做一个将我们的生产代码移动到一个artifactory(我们只是压缩适当的文件,并把它们放进去)的后期工作。 如果分支是“主”,我希望能够在步骤2和3之间递增版本。 我试图想出一个很好的解决scheme。 我想知道是否只是做npm版本或NPM凹凸足够? 看来,我想他们把这个回到git回购? 寻找一些可能的build议