我试图对每个平台的js文件进行预处理,并使用js-preprocess.js来美化它。.i能够处理多达153个files.if的文件数量增加,控制台将显示以下错误!致命错误: CALL_AND_RETRY_2分配失败-进程内存不足,请帮助我解决这个问题!这是我的主要工作代码片段!
fs.readdir(inputdir,function(err,files) {
console.time('PreProcessingJStime')
files.forEach(function(file) {
if (file.indexOf(".js") != -1) {
console.log('PreProcessing JS File : '+file);
fs.writeFile(outputdir+"/"+file,beautify.js_beautify(preprocess(fs.readFileSync(inputdir+"/"+file,'utf-8'),defines).join('\n'),{preserve_newlines:false}));
}
},this);
console.timeEnd('PreProcessingJStime')
})(预先谢谢:)
发布于 2014-08-06 19:55:49
您使用的是fs.writeFile,它是异步的。这意味着您将同时写入所有文件,并且需要在内存中缓冲所需的所有数据。如果将其更改为fs.writeFileSync,则在转到下一个文件之前,它将以一个文件结束,而与前一个文件有关的所有数据都将成为垃圾,因此垃圾收集器将在需要时得到它。
https://stackoverflow.com/questions/25154423
复制相似问题