Подтвердить что ты не робот

Предупреждение: 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 на стороне сервера.

4b9b3361

Ответ 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, где он должен быть автоматически обнаружен.