致命错误:CALL_AND_RETRY_2分配失败 – 预处理我的js fiels时出现内存不足

我试图预处理我的js文件为每个平台和美化它使用我的js-preprocess.js。我能够处理多达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') }) 

提前致谢 :)

你正在使用fs.writeFile ,它是asynchronous的。 这意味着您正在同时写入所有文件,并将所需的所有数据caching在内存中。 如果将其更改为fs.writeFileSync ,则在移到下一个文件之前,它将完成一个文件,并且所有有关以前文件的数据都变成垃圾,所以垃圾收集器将在需要时获取它。