Sbt-Uglify 内存不足错误(播放 2.3.7)

Out Of Memory Errors with Sbt-Uglify (Play 2.3.7)

我的 Play 应用程序中的 sbt-uglify 插件有问题。我完全遵循 https://github.com/sbt/sbt-uglify 中的文档。

在我的 plugins.sbt 中添加插件:

addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")

在我的 build.sbt 中,我将 uglify 添加到资产管道中:

pipelineStages := Seq(uglify, digest, gzip)

当我 运行:sbt startsbt dist 时,我至少有 60 个 JavaScript 文件正在使用 uglify 进行优化。我开始看到几个警告:

[error] WARN: Dropping unused function argument  
[error] WARN: Dropping unused function argument   
[error] WARN: Dropping unreachable code

当我 运行 一个类似的项目但 JS 文件较少时,我已经习惯了看到这个。这一直持续到没有记忆的程度:

[error] java.lang.OutOfMemoryError: unable to create new native thread

我发现了一个类似的问题:Play 2.3.6 Java - OutOfMemory errors w/ sbt-uglify。这似乎没有得到回答,我已经尝试增加我的内存限制。

有趣的是,我可以让它与 RequireJS 一起正常工作,它应该做完全相同的事情。我应该可以使用,对吗?

有没有其他人遇到过这个问题或知道解决方案?我不完全确定这是 Play、Uglify 还是什么的问题。

我添加了一个测试示例来复制这个问题,您可以克隆并自己尝试:https://github.com/ascreamingweas/Sbt-Uglify-Test

感谢您的帮助。

我遇到了同样的问题,sbt-js-engine 似乎已经解决了这个问题:

只需确保添加插件

ddSbtPlugin("com.typesafe.sbt" % "sbt-js-engine" % "1.0.2")

另外不要忘记安装 NodeJS 或者添加

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"