Articles of grunt contrib watch

如何设置Gruntfile.js来监视SASS(指南针)和JS

我新使用gruntjs和nodejs。 我想知道如何设置gruntfile,以便使用watch观看sass文件和js文件编译。 这是我迄今为止: module.exports = function ( grunt ) { "use strict"; require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks); grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), compass: { dist: { options: { config: 'config.rb', watch: true } } } }); grunt.registerTask('default', []); }; 任何帮助都感激不尽。 谢谢!

如何修改基于文件更改的grunt watch任务?

我正在编写一个node.js程序,它将监视一个充满大量(300小时)的scss项目的目录。 Grunt-watch(无论是通过节点模块运行还是独立运行,无论哪种方式运行)都将被configuration,以便每当scss文件发生更改时,都会使用指南针进行编译,输出文件将移至单独的目录,例如: ./1234/style.scss已更改>> grunt-watch运行grunt-compass >> /foo/bar/baz/1234/style.css更新 该文件所在的项目目录显然是非常重要的(如果grunt-compass将所有已编译的文件发送到同一个目录,那么它们就会变得混乱而不可用,而且这个混乱的自动化将是无意义的)。 我为了确保所有的文件被路由到正确的地方,我每次更新css文件时都会dynamic地改变grunt-compass设置。 示例gruntfile: module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), watch: { files: './*/*.scss', tasks: ['compass'] }, compass: { origin:{ options: { //temportary settings to be changed later sassDir: './', cssDir: './bar', specify: './foo.scss' } } } }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-compass'); grunt.event.on('watch', function(action, filepath, target) { var path = require('path'); […]

Gruntjs:致命错误:getaddrinfo ENOTFOUND

我应该指出,我是没有经验的用户第一,我的问题是, '主机名'属性不能有任何值分配除空string(''),'0.0.0.0'和'本地主机'。 我得到: 致命错误:getaddrinfo ENOTFOUND 。 我究竟做错了什么? 如果得到它的权利,我可以改变我通常在地址栏中input的地址,所以,而不是'localhost'我可以键入'example.com'或类似的东西。 正如我上面提到的,我已经指定了不同的值,但只有三个已经工作。 所以为什么这个'*'不起作用。 这是我的Gruntfile.js : module.exports = function( grunt ) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), watch: { scripts: { files: ['*.js'], options: { livereload: true } }, markup: { files: ['*.html'], options: { livereload: true } }, stylesheets: { files: ['*.css'], options: { livereload: true } } }, connect: […]

Grunt watch:只编译一个文件不是全部

我有咕噜安装程序将我所有的咖啡文件编译成JavaScript,并使用dynamic_mappings维护所有文件夹结构,这很好。 coffee: { dynamic_mappings: { files: [{ expand: true, cwd: 'assets/scripts/src/', src: '**/*.coffee', dest: 'assets/scripts/dest/', ext: '.js' }] } } 我想要做的是使用手表编译任何改变的咖啡文件,仍然保持文件夹结构。 这个工作使用上面的任务,这个任务: watch: { coffeescript: { files: 'assets/scripts/src/**/*.coffee', tasks: ['coffee:dynamic_mappings'] } } 问题是,当一个文件改变时,它将咖啡的整个目录再次编译成Javascript,如果只编译改变为Javascript的单个咖啡文件,那将是非常好的。 这在Grunt中是自然的可能还是这是一个自定义function。 这里的关键是它必须保持文件夹结构,否则它会很容易。 我们有自定义的观察脚本在工作,我试图卖给他们在Grunt,但需要这个function来做到这一点。

咕噜表的任务似乎需要很长时间

我正在运行两个简单的任务,每个任务的运行时间都小于100ms,但是在watch命令下运行时,两个组合任务总共花费了大约8秒(每个任务的开销似乎为3.5秒)。 我正在使用它与现场重新开发,我觉得非常沮丧。 我尝试设置spawn为false但这似乎打破了它,并没有任何相关的任务运行。 这里是从sass文件更改时的示例输出。 >> File "app/styles/main.scss" changed. File "app/styles/main.css" created. Done, without errors. Elapsed time loading tasks 4ms ▇▇▇▇▇ 9% sass 1ms ▇▇ 2% sass:dist 39ms ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 89% Total 44ms Completed in 3.862s at Mon Nov 18 2013 17:05:57 GMT+0000 (GMT) – Waiting… OK >> File "app/styles/main.css" changed. Running "copy:styles" (copy) task Copied 1 […]

Grunt手表不工作

我尝试在node.js中通过grunt运行watch任务,但它不适用于我(这是我得到的): $ grunt watch warning: Maximum call stack size exceeded Use –force to continue. 这是Gruntfile.js中的监视任务的一部分: watch: { less: { files: 'src/less/*.less', tasks: ['clean', 'recess', 'copy'] }, js: { files: 'src/js/*.js', tasks: ['clean', 'jshint', 'concat', 'uglify', 'copy'] }, theme: { files: 'src/theme/**', tasks: ['clean', 'recess', 'copy'] }, images: { files: 'src/images/*', tasks: ['clean', 'recess', 'copy'] } […]

Grunt:致命错误:观看EPERM

你可以在这里查看/克隆完整的代码: https : //github.com/mlewisTW/grunt-tests 我想看看 src目录(缩小,concat,less等),它把一切都放到build目录。 我也想看看生成目录,以便生活。 这是手表configuration代码片段: watch: { options: { livereload: false }, build: { files: ['<%= srcDir %>/**/*'], tasks: 'build' }, reload: { files: ['<%= buildDir %>/**/*'], options: { livereload: true } } }, 我在Windows 8上。我遇到了一个Fatal error: watch EPERM当我更改文件时Fatal error: watch EPERM ,并开始build任务的第一步(清理)。 我猜这与我试图删除一个观察目录的事实有关。 有什么方法可以在构build时closureslivereload watch任务,然后在完成时重新启动它? 有另外一个/更好的方法来做到这一点?