与Sbt-Uglify的内存错误(播放2.3.7)

时间:2015-02-06 00:02:40

标签: scala requirejs sbt playframework-2.3 uglifyjs

我的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)

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

[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

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,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"