Articles of gruntjs

无法在WebStorm中列出Grunt任务错误

我在Windows 7上使用的JetBrains WebStorm 11.0.4。我有一个Gruntfile.js文件的项目,当我试图让WebStorm“重新加载任务”,WebStorm失败: “Grunt”窗格中的“ 无法列出任务 ”。 错误的细节是: Registering "C:\Program Files (x86)\JetBrains\WebStorm 11.0.4\plugins\JavaScriptLanguage\grunt_js\tasks" tasks. Loading "grunt-tasks-fetcher.js" tasks…ERROR >> Error: Couldn't find preset "es2015" relative to directory "C:\\Program Files (x86)\\JetBrains\\WebStorm 11.0.4\\plugins\\JavaScriptLanguage\\grunt_js\\tasks" >> at <my_project>\node_modules\babel-core\lib\transformation\file\options\option-manager.js:395:17 >> at Array.map (native) >> at OptionManager.resolvePresets (<my_project>\node_modules\babel-core\lib\transformation\file\options\option-manager.js:387:20) >> at OptionManager.mergePresets (<my_project>\node_modules\babel-core\lib\transformation\file\options\option-manager.js:370:10) >> at OptionManager.mergeOptions (<my_project>\node_modules\babel-core\lib\transformation\file\options\option-manager.js:330:14) >> at OptionManager.init (<my_project>\node_modules\babel-core\lib\transformation\file\options\option-manager.js:488:10) >> at […]

在另一个任务之前asynchronous运行grunt任务

我有一个gruntfile设置,以便我可以开发我的本地angularjs前端,同时转发所有api请求到一个Java中间层托pipe在networking上单独。 这工作很好,除了服务器的位置每隔几天更改,我必须不断更新最新的服务器位置gruntfile。 最新的服务器位置可以通过转发到正确位置的URL缩短服务find,所以我可以使用这个grunt task / node.js代码来获取它: grunt.registerTask('setProxyHost', 'Pings the url shortener to get the latest test server', function() { request('http://urlshortener/devserver', function(error, response, body) { if (!error) { var loc = response.request.uri.href; if (loc.slice(0, 7) === 'http://') { proxyHost = loc.slice(7, loc.length – 1); } } }); }); 当然这是asynchronous的,当我运行它时,grunt已经在请求完成的时候设置了代理。 我怎样才能同步运行这个nodejs请求或者阻塞grunt直到它完成? 这只是发展,所以哈克解决scheme欢迎。 谢谢 编辑: 伟大的答案科里,大多已经解决了问题,因为现在等待任务完成之前继续。 最后一个问题是我无法从initConfig访问该configuration来设置代理,因为initConfig首先运行: module.exports […]

指南针:当运行`grunt server`时找不到服务器

问题 grunt server输出这个: Warning: Task "compass:server" not found. 我在这里上传了Gruntfile.js: https ://gist.github.com/ComFreek/7289648 这是创build一个新的Yeoman项目后得到的默认文件。 细节 我正在阅读使用Yeoman和Polymer构buildWeb应用程序,并按照所述的控制台命令运行。 我的系统: Windows 8.1 Pro 64位 NodeJS 0.10.21 NPM 1.3.11 我已经执行了这些命令: npm install -g yo npm install generator-polymer -g yo polymer grunt server告诉我,我必须安装Ruby和Compass 。 我从这里安装了Ruby: http : //rubyinstaller.org/ 安装完成后,我也成功了Ruby是否真的在PATH中注册过。 我使用NPM来安装Compass: npm install grunt-contrib-compass –save-dev -g (我尝试了Compass的本地和全球安装,但都没有工作。) 这是grunt的确切输出: D:\test>grunt server Running "server" task […]

错误的CSSpath – 与Grunt Live Reload问题

我在我的Gruntfile.js中有这个设置 module.exports = function(grunt) { grunt.initConfig({ less: { development: { options: { compress: false, yuicompress: false, optimization: 0 }, files: { // target.css file: source.less file "assets/css/main.css": "assets/css/main.less" }, } }, watch: { styles: { // Which files to watch (all .less files recursively in the less directory) files: ['assets/css/*.less', 'assets/less/*.less'], tasks: ['less'], }, // […]

如何在grunt.initConfig()之前执行asynchronous操作?

现在我有我的Gruntfile设置来执行一些自动检测魔术,如parsing源文件来parsingroder中的一些PHP源,以dynamic地找出运行grunt.initConfig()之前我需要知道的文件名和path。 不幸的是, grunt.initConfig()似乎并不是要asynchronous运行,所以我没有办法让我的asynchronous代码执行之前,我可以调用它。 有没有一个技巧来完成这个或我必须重写我的检测程序同步? 在我的callback到达之前有没有简单的方法来阻止执行? 内部的grunt任务当然有this.async() ,但是对于initConfig()不起作用。 这是一个简单的例子: function findSomeFilesAndPaths(callback) { // async tasks that detect and parse // and execute callback(results) when done } module.exports = function (grunt) { var config = { pkg: grunt.file.readJSON('package.json'), } findSomeFilesAndPaths(function (results) { config.watch = { coffee: { files: results.coffeeDir + "**/*.coffee", tasks: ["coffee"] // … } }; […]

如何debugging咕噜莫卡任务?

我正在使用WebStorm运行一个咕task任务。 debugging器成功停止在Gruntfile.js文件的断点处,但不在我的任务文件中。 在Gruntfile.js中,我注册了一个这样的任务: grunt.initConfig({ … configuration … }); grunt.registerTask('myTask', ['mocha:myTask']); 当我在testing“myTask”的相应js文件中设置一个断点时,它不会停止。 我怎样才能debugging咕噜testing呢? — UPDATE ————————————— 所以我尝试了所有可能的解决scheme,但这并没有解决我的问题! 我能够debugginggrunt脚本本身,这是debugging器实际停止的地方(在WebStorm或节点检查器中)。 Gruntfile.js中的一个断点正在工作。 问题是,我无法debugging实际的Grunt任务本身,像这样注册grunt:grunt.registerTask('myTask',['mocha:myTask']); 我也能够debugging摩卡testing本身。 但是我想debugging一下从grunt task runner调用的一个mochatesting。 有任何想法吗?

尝试使用摩卡testing时,模型加载不正确

我正在尝试使用摩卡来testing我的快速应用程序。 我的文件夹结构是: myapp |-app |–models |-test |–mocha-blanket.js |–mocha |–karma |-server.js server.js是我的快递服务器。 我以前在options.require ,但文件说,使用blanket.js 。 我的mocha-blanket.js是: var path = require('path'); var srcDir = path.join(__dirname, '..', 'app'); require('blanket')({ // Only files that match the pattern will be instrumented pattern: srcDir }); 我的Gruntfile有: mochaTest: options: reporter: "spec" require: 'test/mocha-blanket.js' # require: "server.js" coverage: options: reporter: 'html-cov', captureFile: 'mocha-coverage.html' […]

如何使用全局安装的grunt-html?

我想使用grunt-html任务来检查我的HTML文件。 我使用npm install grunt-html 在本地安装任务,并在grunt.js使用它,如下所示: module.exports = function(grunt){ grunt.loadNpmTasks( '咕噜-HTML'); grunt.initConfig({ htmllint:{ 所有: '* HTML'] }, }); }; 现在我想全局安装grunt-html任务。 不幸的是,在删除本地grunt-html节点模块并全局安装之后, grunt无法加载任务。 在运行grunt htmllint我得到: >>没有find本地Npm模块“grunt-html”。 是否安装? 如果我删除grunt.loadNpmTasks('grunt-html'); 从我得到的grunt.js文件: 找不到任务“htmllint”。 使用–force继续。 所以我的问题是如何使用全球安装的grunt-html ?

用grunt运行2个asynchronous任务

我正在一个小型的节点项目上工作,我使用coffeescript和更less的客户端代码。 我正在尝试使用grunt设置我的开发环境。 我已经实现了像这样运行服务器的自定义grunt任务: start = require './start' #just a function to start express.js application grunt.registerTask 'server', 'Starting server', -> grunt.log.write 'Preparing server to start' done = do @async start (err) -> grunt.log.write "server running at localhost:4000" 我也想用grunt-contrib-watch插件运行“watch”任务: grunt.initConfig watch: coffee: files: ['public/coffee/**/*.coffee'] tasks: ['coffee'] jade: files: ['public/jade/**/*.jade'] tasks: ['jade'] less: files: ['public/less/**/*.less'] tasks: ['less'] 问题是:如何使这两个任务(手表和服务器)同时运行? […]

节点js作为http服务器和主机angularJS SPA

我有一个应用程序写在angularJS和grunt构build。 有没有一种方法可以从节点js创build一个http服务器并将其托pipe在那里。 请分享任何代码片段或文件,这将有所帮助。 谢谢