2015-02-06 22 views
0

我在Play應用程序中遇到了sbt-uglify插件的問題。我完全按照https://github.com/sbt/sbt-uglify的文檔。Sbt-Uglify發生內存不足錯誤(Play 2.3.7)

在我plugins.sbt我添加插件:

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

在我build.sbt我添加醜化到資產管道:

pipelineStages := Seq(uglify, digest, gzip) 

我至少有60 JavaScript文件正在與醜化優化當我運行: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

您的幫助表示讚賞。

+0

我想出了一個測試版本,它在試圖優化60多個CoffeeScript文件時複製了這個確切的錯誤。你可以在這裏查看:https://github.com/ascreamingweas/Sbt-Uglify-Test。謝謝! – ASCREAMINGWEAS 2015-02-06 19:33:10

+0

作爲解決方法,您可以嘗試按照[此處](https://github.com/sbt/sbt-js-engine)中的說明安裝節點JS並使用節點SBT JS引擎。根據我的經驗,它比基於Java的默認(Trireme)快得多,效率更高,儘管不太方便。 – Mikesname 2015-02-07 19:34:15

回答

0

我有同樣的問題,SBT-JS引擎似乎已經解決了這個問題:

只要確保你添加插件

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"

+0

謝謝你的迴應。我們現在轉向其他選項,但我一定會嘗試一下。 – ASCREAMINGWEAS 2015-06-26 16:27:57