Really strange error from both version 0.3.0 and 0.2.3 using a pretty simple script. I'm guessing the error is from something else but this is just a bad catch by node, but worth sharing I suppose
➜ project git:(master) ✗ node imagemin.js
Found 214 images...
/usr/local/var/www/project/imagemin.js:28
.src(src)
^
TypeError: Object #<Transform> has no method 'src'
at /usr/local/var/www/project/imagemin.js:28:4
at ChildProcess.exithandler (child_process.js:635:7)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:735:16)
at Socket.<anonymous> (child_process.js:948:11)
at Socket.EventEmitter.emit (events.js:95:17)
at Pipe.close (net.js:466:12)
var path = require('path');
var execFile = require('child_process').execFile;
var Imagemin = require('image-min');
var jpegtran = require('image-min').jpegtran;
var optipng = require('image-min').optipng;
var src = [],
imagemin = new Imagemin(),
fileTypes = ['jpg', 'png', 'gif'];
execFile('find', [path.join(process.cwd(), 'production')], function(err, stdout, stderr) {
var tmp = stdout.split('\n'),
i = 0;
// Only image files (png, jpg, gif)
tmp.forEach(function(item, index){
for(i = 0; i < fileTypes.length; i++){
if(item.indexOf('.' + fileTypes[i]) !== -1){
src.push(item);
}
}
});
console.log("Found " + src.length + " images...");
imagemin
.src(src)
.dest('dist')
.use(jpegtran({ progressive: true }))
.use(optipng({ optimizationLevel: 4 }))
.optimize(function (err, files) {
console.log(files);
});
});
> new Imagemin()
{ _readableState:
{ highWaterMark: 16384,
buffer: [],
length: 0,
pipes: null,
pipesCount: 0,
flowing: false,
ended: false,
endEmitted: false,
reading: false,
calledRead: false,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
objectMode: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
domain: null,
_events:
{ end: { [Function: g] listener: [Function: onend] },
finish: { [Function: g] listener: [Function] } },
_maxListeners: 10,
_writableState:
{ highWaterMark: 16384,
objectMode: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
sync: true,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
buffer: [],
errorEmitted: false },
writable: true,
allowHalfOpen: true,
_transformState:
{ afterTransform: [Function],
needTransform: false,
transforming: false,
writecb: null,
writechunk: null },
_transform: [Function: noop] }
> new Imagemin().src
undefined