The command grunt imagemin
output the following to a random file.
Fatal error: ENOENT, no such file or directory \'app/public/assets/img/epg/rec
The following solutions works on...
This is a hack of a solution, but I found the task fails when it looks at the the target directory to see if the PNG image already exists and is optimized. The task would consistently finish when I ran it over and over, each time it would complete a few more images. And I could repeat the problem by running grunt clean
, then grunt imagemin
over and over.
The error I saw was:
bash
Fatal error: ENOENT, no such file or directory 'build-production/path-to/some-image.png'
Copy the images to the target dir immediately before optimizing them. This way, the check passes and unoptimized images that are copied are replaced by their optimized equivalent.
grunt.task.run(
'copy:imagemin',
'imagemin'
);
copy: {
imagemin: {
files: [{
expand: true,
cwd: '<%= exponential.client.src %>',
src: ['images/**/*.{png,jpg,gif}'],
dest: '<%= exponential.client.buildProduction %>'
}]
}
}
imagemin: {
buildProduction: {
files: [{
expand: true,
cwd: '<%= exponential.client.src %>',
src: ['images/**/*.{png,jpg,gif}'],
dest: '<%= exponential.client.buildProduction %>'
}]
}
}