2015-02-06 2 views
0

У меня возникли проблемы с плагином sbt-uglify в приложении Play. Я внимательно следил за документацией с https://github.com/sbt/sbt-uglify.Ошибки памяти с Sbt-Uglify (Воспроизвести 2.3.7)

В моей plugins.sbt добавить плагин:

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

В моем build.sbt я добавить уродовать к трубопроводу активов:

pipelineStages := Seq(uglify, digest, gzip) 

Я по крайней мере 60 JavaScript файлы, которые оптимизированы с уродовать когда я запускаю: 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

Я придумал тестовую версию, которая повторяет эту точную ошибку при попытке оптимизировать 60+ файлов CoffeeScript. Вы можете посмотреть это здесь: https://github.com/ascreamingweas/Sbt-Uglify-Test. Благодаря! – ASCREAMINGWEAS

+0

В качестве обходного пути вы можете попробовать установить узел JS и использовать узел SBT JS в соответствии с инструкциями [здесь] (https://github.com/sbt/sbt-js-engine). Это намного быстрее и эффективнее, чем основанный на Java дефолт (Trireme) по моему опыту, хотя и менее удобный. – Mikesname

ответ

0

У меня была та же проблема, СБТ-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

Смежные вопросы