javascript仅提供last的输出以进行循环迭代

时间:2018-07-06 17:00:46

标签: javascript node.js

我编写了一个node.js脚本,以使用jimp从目录中获取所有图像文件(作为输入),对其进行一些操作,然后将其保存在目标目录中(另一个输入)作为filename.suffix.extension。我也把后缀作为输入。

但是我只看到收集到的列表中的最后一个文件出现在目标目录中。

// imports
var Jimp = require('jimp');
const fs = require('fs')

// inputs
dir = process.argv[2]
target = process.argv[3]
suffix = process.argv[4]

// collect files
let dirCont = fs.readdirSync( dir );
const files = dirCont.filter( ( elm ) => /.*\.(png|jpg)/gi.test(elm) );

// run jimp on each file and write to target directory
for (file in files)
{  
    target_file = target+files[file].replace(/\.[^/.]+$/, "")+'.'+suffix+files[file].match(/\.[^/.]+$/)
    Jimp.read(dir+'/'+files[file]).then(function (file) {
        return file.resize(256, 256)     // resize
             .quality(60)                 // set JPEG quality
             .greyscale()                 // set greyscale
             .write(target_file); // save
    })

}

我使用grunt来运行整个过程。

0 个答案:

没有答案