Grunt -观察新的文件夹
Grunt - Watch new folders
我正在尝试获得grunt-contrib-watch来监视我的图像文件夹,并在任何添加/更改的jpg, gif或png上运行grunt-imageoptim。
下面的代码可以很好地在新图像上运行imageoptim,只要我不创建任何新文件夹。显然这在最近的版本中已经修复了,但我对Grunt很陌生,所以它可能是我缺少的一些基本的东西。我已经让它通过一个不太具体的通配符来查看watch中的更改/新文件夹,但是我不能阻止imageoptim在所有文件夹中的所有图像上运行。
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
imageoptim: {
options: {
jpegMini: false,
imageAlpha: true,
quitAfter: true
},
},
watch: {
files: ['images/**/*.jpg', 'images/**/*.png', 'images/**/*.gif'],
tasks: ['imageoptim'],
options: {
spawn: false,
},
},
});
// imageoptim
grunt.loadNpmTasks('grunt-imageoptim');
// grunt watch
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['imageoptim']);
var changedFiles = Object.create(null);
var onChange = grunt.util._.debounce(function() {
grunt.config('imageoptim.all.src', Object.keys(changedFiles));
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', function(action, filepath) {
changedFiles[filepath] = action;
onChange();
});
};
哎呀,回答了我自己的问题:p我以前(在发布问题之前)在imageoptim中设置src而不是在watch中更改文件。如此:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
imageoptim: {
options: {
jpegMini: false,
imageAlpha: true,
quitAfter: true
},
},
watch: {
files: ['images/**'],
tasks: ['imageoptim'],
options: {
spawn: false,
},
},
});
// imageoptim
grunt.loadNpmTasks('grunt-imageoptim');
// grunt watch
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['imageoptim']);
var changedFiles = Object.create(null);
var onChange = grunt.util._.debounce(function() {
grunt.config('imageoptim.all.src', Object.keys(changedFiles));
changedFiles = Object.create(null);
}, 200);
grunt.event.on('watch', function(action, filepath) {
changedFiles[filepath] = action;
onChange();
});
};
相关文章:
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何将乳胶配方奶粉图像保存到Asp.net中的文件夹中
- 展开和折叠文件夹
- 在ng重复循环中显示来自不同文件夹的图像
- 如何将所有JS文件连接到一个文件夹中
- 是否可以用JavaScript显示等效的文件夹对话框
- grunt上的压缩文件夹不起作用
- 如何使用javascript获取从指定文件夹创建的所有文件的名称、大小、类型和日期
- 将Windows文件路径组织到文件夹中
- 链接/按钮从子文件夹下载文件--浏览器只是浏览
- 在更改名称时,使用ajax jsp在下拉菜单中填充多个文件夹的数据
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- 如何将JS文件从其他文件夹链接到页面
- 将文件从应用程序文件夹复制到JQM/Phonegap应用程序中的根文件夹
- Grunt imagemin-观察多个文件/文件夹优化单个文件
- 如何设置观察程序将文件复制到同一文件夹中的其他文件
- Gulp观察多个文件夹
- Grunt -观察新的文件夹
- 在Node.js中观察文件夹的变化
- 当书签's文件夹在firefox中发生更改,书签观察器的函数被调用