闭包编译器(ccjs)内存不足错误
Closure Compiler (ccjs) out of memory error
我正试图通过node package manager
安装闭包编译器来减少我的javascript代码(有172k行),但它失败了,并出现了"内存不足错误":
$ ccjs ./static/ui.jsexe/all.js --compilation_level=ADVANCED_OPTIMIZATIONS > ./static/ui.jsexe/all.min.js
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2245)
at java.util.Arrays.copyOf(Arrays.java:2219)
at java.util.ArrayList.grow(ArrayList.java:213)
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:187)
at java.util.ArrayList.add(ArrayList.java:411)
at com.google.javascript.jscomp.parsing.NewIRFactory.<init>(NewIRFactory.java:241)
at com.google.javascript.jscomp.parsing.NewIRFactory.transformTree(NewIRFactory.java:289)
at com.google.javascript.jscomp.parsing.ParserRunner.parse(ParserRunner.java:106)
at com.google.javascript.jscomp.JsAst.parse(JsAst.java:84)
at com.google.javascript.jscomp.JsAst.getAstRoot(JsAst.java:50)
at com.google.javascript.jscomp.CompilerInput.getAstRoot(CompilerInput.java:118)
at com.google.javascript.jscomp.Compiler.hoistNoCompileFiles(Compiler.java:1500)
at com.google.javascript.jscomp.Compiler.parseInputs(Compiler.java:1404)
at com.google.javascript.jscomp.Compiler.parse(Compiler.java:788)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:743)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:93)
at com.google.javascript.jscomp.Compiler$3.call(Compiler.java:655)
at com.google.javascript.jscomp.Compiler$3.call(Compiler.java:652)
at com.google.javascript.jscomp.Compiler$4.call(Compiler.java:699)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
我的机器上有16 GB,如何解决此问题?
看起来应该是https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/NewIRFactory.java#L245--它用文件中每一行换行符的索引填充ArrayList
,因此仅列表的大小就为172K。
但是,如果在将所有JS传递给闭包编译器之前将其放在一个文件中,则可以考虑跳过该连接,并让闭包编译器通过在命令行(... --js=file1.js --js=file2.js
)上传递单个文件或使用"glob"(... --js='src/scripts/*.js'
)来执行此操作。然后,它可以分别解析每个文件,这将使用更少的内存。
或者,您可以使用Xmx选项
好的,这个问题已经由项目开发人员解决了,希望没有人再面临这个问题。
https://github.com/dcodeIO/ClosureCompiler.js/issues/19
相关文章:
- "资源不足错误“;当从Chrome控制台重复发出ajax请求时
- node.js上的过程性2d数组mongoDB插入内存不足
- 从redis到elasticsearch的Node.js脚本副本内存不足
- WebStorm运行非常非常慢,并且不断出现内存不足的错误
- nodejs在处理csv文件时内存不足
- Web工作程序在处理大型数组时内存不足
- 移动野生动物园崩溃日志 - 内存不足
- 我的 JavaScript 暴力递归数独求解器内存不足吗?
- Dojo 1.7 构建:内存不足错误
- IE(any)和Firefox中的内存不足错误,当尝试从父文档包含jQuery时
- 通过webpack绑定时,获取GC,进程内存不足错误
- 闭包编译器(ccjs)内存不足错误
- 错误处理“;内存不足异常”;在浏览器中
- 使用nodejs处理内存不足错误,而没有那么大的错误
- Javascript”;捕获“;内存不足错误
- 致命错误:CALL_AND_RETRY_2分配失败-进程在预处理我的js字段时内存不足
- 如何处理大型对象并避免内存不足错误?
- Node JS创建大量CSV文件,没有内存不足错误
- Canvas / kinetic内存不足错误
- 致命错误:CALL_AND_RETRY_LAST分配失败- JavaScript堆内存不足