Articles of gruntjs

如何创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标志。 因为我想要一个完全便携的环境,所以我试图放弃这个环境,但是我不能工作。 我是否错过了一些东西,或者是我试图做不到的事情?

通过exec将variables传递给PhantomJS

我开始使用Grunt,并希望将一个variables传递给我通过exec运行的PhantomJS脚本。 我希望能够做的是通过一个URL的脚本从屏幕捕获。 任何帮助将不胜感激,谢谢! 达伦 咕script脚本 exec('phantomjs screenshot.js', function (error, stdout, stderr) { // Handle output } ); screenshot.js var page = require('webpage').create(); page.open('http://google.com', function () { page.render('google.png'); phantom.exit(); });

React和Grunt – Envify NODE_ENV ='production'和UglifyJS

我正在使用Grunt构build一个React项目,我想要“dev”和“prod”风味。 正如反应文件所说: 要在生产模式下使用React,请将环境variablesNODE_ENV设置为生产。 build议使用UglifyJS等执行死代码清除的清除器来完全删除开发模式中存在的额外代码。 我非常新的使用grunt,browserify和东西,但让我们看看。 我的第一个问题就是envify,我把它作为一个转换: browserify: { options: { transform: ['reactify'], extensions: ['.jsx'] }, dev:{ options: { watch: true //Uses watchify (faster) }, src: ['js/app.js'], dest: 'js/bundle.js' }, /** * To use React in production mode, set the environment variable NODE_ENV to production. * A minifier that performs dead-code elimination such as UglifyJS is […]

我怎样才能压缩一个文件夹在咕噜?

我有一个文件夹"foo" ,但在我的目标文件夹"target"我想发送我的"foo"文件夹,如"foo.zip" zip版本,谷歌和发现了许多方法来压缩文件,但不是为文件夹,那么我们怎样才能压缩整个文件夹呢?

你如何运行多个grunt scripts.postinstall?

我试图从grunt的scripts.postinstall运行多个CLI命令。 我不知道如何让两个运行。 如果我添加第二个命令既不运行。 另外他们都在postinstall和控制台上工作。 我试过把它们包装在一个数组中: "scripts": { "postinstall": ["node_modules/.bin/bower install", "grunt setup"] }, 我试图用分号分隔它们: "scripts": { "postinstall": "node_modules/.bin/bower install; grunt setup" }, 我似乎无法findNPM脚本的解决scheme 我为这些部分的gruntfile.js看起来像这样: mkdir: { setup: { options: { create: [ 'app/main/source/www', 'app/main/build', 'app/main/docs', 'app/main/tests', 'app/development', 'app/releases' ] } } } grunt.registerTask('setup', [ 'mkdir:setup', 'bowercopy:wordpress' ]); 如果这有助于我的package.json的缩减版本,我剪下上面的代码示例,主要是为了提供上下文。 { "name": "webapp", "version": "0.1.0", "description": "A […]

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。 (我在裸机应用程序阶段)。 任何人有任何想法可能造成这一点?