当我尝试运行它时,Grunt imagemin会抛出以下错误:
Running "imagemin:dynamic" (imagemin) task
Fatal error: Cannot read property 'contents' of undefined
Run Code Online (Sandbox Code Playgroud)
这是我的package.json文件:
{
"name": "project1",
"version": "0.1.0",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-imagemin": "^1.0.0",
"grunt-contrib-uglify": "^0.11.0",
"imagemin" : "4.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Gruntfile.js
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
build: {
src: 'views/js/src/main.js',
dest: 'views/js/build/main.js'
}
},
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'views/images/src/',
src: ['**/*.{png,jpg,gif}'],
dest: 'views/images/build/'
}]
}
}
});
// 3. Where we tell Grunt we plan to use this …Run Code Online (Sandbox Code Playgroud) 我正在尝试用grunt的imagemin模块优化图像.
我的目录结构以下列方式查找:
每个文件夹1..N内都有文件.所有这些都是.jpg
我想要实现的是尝试优化所有这些并使用更新版本(具有相同名称)更改它们.我开始用一个更简单的任务来优化它们并复制到另一个文件夹(publicImages)保留相同的结构.
查看文档,我想出了以下JSON:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'publicImg/',
src: ['*.jpg'],
dest: 'publicImages/'
}]
}
}
Run Code Online (Sandbox Code Playgroud)
告诉我Minified 0 images (saved 0 B),我试图使用**/*jpg,**/*.{jpg}但仍然具有相同的效果.如何正确完成?
我的 Gruntfile.js 中有以下代码段:
imagemin: {
options: {
optimizationLevel: 7,
cache: false
},
dist: {
files: [{
expand: true,
cwd: 'Assets/img/',
src: ['**/*.{png,jpg,gif}', '!optimised/*.*'],
dest: 'Assets/img/optimised/'
}]
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行grunt imagemin/optimised 中的文件时再次优化,确保排除我在“优化”文件夹中的任何文件的正确模式是什么?
我试过通配模式!这用于否定匹配但无法使其工作。
我正在使用Grunt Imagemin来优化图像文件夹.但是,每次运行该命令时,它都会在所有图像上运行imagemin.有没有办法在检测到新的更改时只运行grunt imagemin?
我现在一直试图解决这个问题超过半天.
我有一个angularjs项目,我使用grunt来构建.
运行我的grunt命令给我以下内容:
```Running"concurrent:dist"(并发)任务
Running "svgmin:dist" (svgmin) task
Total saved: 0 B
Done, without errors.
Execution Time (2014-09-23 21:53:55 UTC)
loading tasks 7ms ?????? 11%
svgmin:dist 58ms ?????????????????????????????????????????? 89%
Total 65ms
Warning: Running "imagemin:dist" (imagemin) task
Fatal error: Object #<DestroyableTransform> has no method 'apply'
Execution Time (2014-09-23 21:53:55 UTC)
imagemin:dist 868ms ??????????????????????????????????????????????? 99%
Total 876ms Use --force to continue.
Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)
```
这是我的GruntFile.js中的imagemin任务:
imagemin: {
dist: {
files: [
{
expand: true,
cwd: '<%= yeoman.app %>/images', …
当我运行grunt dist时,我收到了上述错误,它与我的其他机器完美配合.请找我的gruntfile.
$ grunt imagemin.
运行"imagemin:png"(imagemin)任务缩小132张图像(已保存134.02 kB)
运行"imagemin:gif"(imagemin)任务
致命错误:写EPIPE
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
connect: {
server: {
options: {
port: 9001,
livereload: true,
hostname: 'localhost',
base: ['.']
}
}
},
watch: {
options: {
livereload: true
},
all: {
files: ['Content/**/*.scss'],
tasks: 'sass'
}
},
open: {
all: {
path: 'http://localhost:9001/app/index.html'
}
},
concat: {
style: {
src: [
"Content/font-awesome/css/font-awesome.min.css",
"Content/scss/all.scss",
"Content/scss/_buttons.scss"],
dest: 'Content/dist/scss/style.scss'
},
ie: {
cwd: 'Content',
expand: true,
src: [
"scss/ie9.scss",
"scss/ie8.scss"
],
dest: …Run Code Online (Sandbox Code Playgroud) grunt build即使使用干净的Yeoman角度构造,我也会继续跑步:yo angular whatever.
警告:运行"imagemin:dist"(imagemin)任务
致命错误:无法读取未定义的属性"内容"
在尝试使用imagemin时,我收到了一个奇怪的警告,没有任何反应.
grunt imagemin:primary
Warning: Cannot call method 'replace' of undefined Used --force, continuing.
Done, but with warnings.
Run Code Online (Sandbox Code Playgroud)
我给错误的任务如下
grunt.config 'imagemin'
primary:
options:
optimizationLevel: 7
expand: true
cwd: "assets"
src: "{img,img_two}/**/*.{jpg,jpeg,gif,png}"
dest: "public/compiled/img"
grunt.loadNpmTasks 'grunt-contrib-imagemin'
Run Code Online (Sandbox Code Playgroud)
这些都行不通
src: "img/**/*.{jpg,jpeg,gif,png}"
src: "{img,img_two}/**/*.{jpg,jpeg,gif,png}"
这些工作
src: "img/**/*.jpg"src: "{img,img_two}/**/*.jpg"
所以它似乎不喜欢多个扩展语法,但为什么,它甚至是如何在示例中完成的?
更新:似乎只是PNG不起作用,无论我是自己进行扩展还是在组匹配中.我在Windows 8,NPM 1.4.3上
https://github.com/gruntjs/grunt-contrib-imagemin/issues/219
我正在尝试使用进行无损优化JPEG / PNG图像imagemin,但是使用扩展名时出现问题,它们会“反优化”,这意味着结果图像比原始图像大。我该如何预防?
这是我的Gruntfile.js
...
grunt.initConfig({
imagemin: {
jpeg: {
options: {
//by default it uses imageminJpegtran
progressive: true,//default false, progressive JPEG is better compression https://superuser.com/questions/463477/progressive-jpeg-quality-compare-to-normal-jpeg
arithmetic: false,//true breaks image
//don't know how to use it loseless without making the images even bigger
// use: [
// imageminMozjpeg({
// quality: 95, //Compression quality, in range 0 (worst) to 100 (perfect).
// dcScanOpt: 2,//2 Optimize between one scan for all components and one scan for 1st …Run Code Online (Sandbox Code Playgroud) 我试图grunt-contrib-imagemin ~0.9.4在node.js应用程序中压缩图像.我的配置是:
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'server/static/img/',
src: ['**/*.{jpg,gif,png}'],
dest: '_public/incl/img/'
}]
}
},
Run Code Online (Sandbox Code Playgroud)
我系统地得到一条Error: spawn ENOENT in file somepath/someimage.png消息.它在第一个处理过的.png文件中失败.当我不包含.png文件时,一切正常.
我已经读过某个地方,我应该首先在目标目录中复制图像文件作为解决方法.我试过这个,但它没有解决问题.
我在Windows 7 32位上,我正在使用grunt ~0.4.5.我该如何解决这个问题?
我正在尝试使用构建应用程序grunt build,我收到此错误:
# grunt build
Running "clean:dist" (clean) task
Running "wiredep:app" (wiredep) task
Running "wiredep:sass" (wiredep) task
Running "includeSource:dist" (includeSource) task
File "dist/index.html" created.
Running "useminPrepare:html" (useminPrepare) task
Configuration changed for concat, uglify, cssmin
Running "concurrent:dist" (concurrent) task
>> Warning: There are more tasks than your concurrency limit. After this limit
>> is reached no further tasks will be run until the current tasks are
>> completed. You can adjust the limit in the concurrent task options
Warning: …Run Code Online (Sandbox Code Playgroud) 我的图片没有得到优化.也许我在我的结局上做错了,但除了我的imagemin任务之外,其他任务都在为我工作.我删除了所有其他任务并尝试在下面运行我的任务但它没有执行.
我的终端中也没有消息表明问题所在.我正在运行此命令
grunt imagemin
但没有任何反应.图像.jpg格式正确,位于我的img文件夹中.我想要做的是优化/压缩这些图像到我的文件夹中的图像文件dist夹.
我也在加载所有已注册的节点 require('load-grunt-tasks')(grunt);
如果有人可以帮助我,那会很好.
这是我的文件夹结构
Main Folder
| -- dist
|--- css
|--- js
|-- img -- (images are here)
|-- js
|-- node_modules
|-- reports
|-- sass
|-- test
|-- coverage
|-- _resources
|-- _bin
Run Code Online (Sandbox Code Playgroud)
这是我的gruntfile.js
module.exports = function(grunt) {
// A very basic default task.
// grunt.registerTask('running', 'Log some stuff.', function() {
// grunt.log.write('Logging some stuff...').ok();
// });
require('load-grunt-tasks')(grunt); // using this to load all tasks
grunt.initConfig({
// …Run Code Online (Sandbox Code Playgroud)