Tag: gruntjs

uglify在运行child_process.execFile后崩溃

编辑2 我“解决了”这个问题,但是我不想把它作为答案,它不能解释实际发生的事情。 在我使用的.NET resourceReader.exe的代码中 Console.OutputEncoding = System.Text.Encoding.UTF8; 将国际化的资源stdout到unicode的stdout 。 如果我重置编码在我的程序结束 Console.OutputEncoding = System.Text.Encoding.Default; 那么我在Node中没有任何错误。 如果我没有重置它,我会得到原始问题中描述的错误。 看来,.NET在某种程度上弄乱了cmd.exe上的一些输出编码设置,导致后续节点运行失败! 编辑 我缩小了由resourceReader.exe引起的错误。 这是一个.NET程序,它从.NET程序集中读取一些资源stream,并使用Console.WriteLine它们打印到stdout。 我将Console.OutputEncoding = System.Text.Encoding.UTF8添加到resourceReader.exe因为有些资源是非ASCII字母的,这就是导致崩溃的原因! 如果我把这条线取出来,任务不会崩溃,但资源显示为不可打印的ASCII字符! 另外,崩溃只发生,如果我真的打印非ASCII到sdtout。 如果我不打印它们,它不会出错。 原版的 我添加了一个步骤到我的Gruntfile使用child_process.execFile运行从外部程序读取一些数据,并在构build中使用它。 现在每当我运行我的构build,它第一次运行良好,但第二次崩溃! 这里是崩溃的输出(这是在uglify任务): File build/Scripts/NDB.contacts.min.js created: 16.85 kBevents.js:85 throw er; // Unhandled 'error' event ^ Error: This socket is closed. at WriteStream.Socket._writeGeneric (net.js:656:19) at WriteStream.Socket._write (net.js:709:8) at doWrite (_stream_writable.js:301:12) […]

Webpack传输轮询错误

我在启动webpack-dev-server的express / webpack应用程序中有下面的咕噜任务: "webpack-dev-server": { options: { webpack: webpackConfig, publicPath: '/assets/', watch: true, inline: true, hot: true, quiet: true }, start: { keepAlive: true, webpack: { devtool: 'eval', debug: true } } } 我遇到的问题是,轮询者只是垃圾邮件我的铬控制台,这将是非常讨厌的,当涉及到debugging。 (我在裸机应用程序阶段)。 任何人有任何想法可能造成这一点?

无法在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 ?