Предупреждение: node.js обнаружено не удалось, sbt будет использовать движок JavaScript Trireme на основе Rhino
Я новичок в платформе Play. Пожалуйста, объясните смысл нижеследующего предупреждения.
Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using node.js
Я не хочу ничего замедлять свое приложение, поэтому, пожалуйста, совет, если я должен изменить JS Engine на node.js, но мой проект playframework использует Java на стороне сервера.
Ответы
Ответ 1
Вам нужно установить Node.js, а затем сообщить движку sbt/java, чтобы использовать его.
brew install node
Измените .bash_profile и добавьте:
export SBT_OPTS="${SBT_OPTS} -Dsbt.jse.engineType=Node -Dsbt.jse.command=$(which node)"
Это устранило предупреждение для меня на OSX
Ответ 2
в ubuntu
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
затем добавьте, как указано выше, в ваш .profile в вашем домашнем каталоге
export SBT_OPTS="${SBT_OPTS} -Dsbt.jse.engineType=Node -Dsbt.jse.command=$(which node)"
затем
. ./.profile
чтобы перезагрузить ваш .profile
Для более гибкой установки с помощью диспетчера версий node проверьте следующее руководство:
как установить node js на сервере ubuntu 14.04
Постройте снова, и предупреждение об использовании материала Trireme должно исчезнуть.
Ответ 3
В Windows:
- Установите node.js
- Перейти к панели управления - система и безопасность - система - расширенные системные настройки
- Выберите переменные среды...
- Поиск в системных переменных для
SBT_OPTS
- Если такое существует, нажмите "Изменить..." и соедините
-Dsbt.jse.engineType=Node
с значением переменной
- Если такое не существует, нажмите "Создать..." и напишите
SBT_OPTS
на имя переменной и -Dsbt.jse.engineType=Node
на значение переменной
- Нажмите OK - OK - OK
- Перезапустите любую командную строку (cmd, PowerShell), которая в настоящее время запущена в Play Framework
Ответ 4
В качестве альтернативы установке переменной среды вы можете добавить эту строку в файл build.sbt:
JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
Смотрите: https://github.com/sbt/sbt-js-engine
Ответ 5
в Windows 10:
Установите node.js из https://nodejs.org/en/
(Установщик автоматически добавляет node.js к вашему PATH)
затем добавьте:
export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"
к вашим плагинам .sbt в
. ./project/plugins.sbt
Работал для меня - предупреждение исчезло!
EDIT:
По-видимому, plugins.sbt было неправильным местом для добавления
export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"
... хотя при загрузке моего приложения оно исчезло, это привело к ошибке при перезагрузке приложения через пару часов:
error: not found: экспортировать значение
Я был бы рад, если бы кто-нибудь мог помочь и сказать мне, куда поставить экспорт.
Ответ 6
Плагины sbt, требующие JS-движка, используются только в процессе сборки, и поэтому отсутствует Node.js только замедляет стадии создания активов, если вы используете какой-либо.
Встроенное приложение не затрагивается.
В любом случае, вы можете установить Node.js на свой PATH, где он должен быть автоматически обнаружен.