У меня возникли проблемы с плагином 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
Ваша помощь ценится.
Я придумал тестовую версию, которая повторяет эту точную ошибку при попытке оптимизировать 60+ файлов CoffeeScript. Вы можете посмотреть это здесь: https://github.com/ascreamingweas/Sbt-Uglify-Test. Благодаря! – ASCREAMINGWEAS
В качестве обходного пути вы можете попробовать установить узел JS и использовать узел SBT JS в соответствии с инструкциями [здесь] (https://github.com/sbt/sbt-js-engine). Это намного быстрее и эффективнее, чем основанный на Java дефолт (Trireme) по моему опыту, хотя и менее удобный. – Mikesname