我的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 start
或sbt 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 :(得分: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"