Advertencia: la detección de node.js falló, sbt usará el motor Trireme JavaScript basado en Rhino

Soy nuevo en Play Framework. Por favor explique el significado de la siguiente advertencia.

Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets comstacktion, which in some cases may be orders of magnitude slower than using node.js 

No quiero nada que ralentice mi aplicación, así que dame un consejo si debo cambiar JS Engine a node.js, pero mi proyecto de playframework está utilizando Java en el lado del servidor.

Debe instalar Node.js y luego decirle al motor sbt / java que lo use.

  brew install node 

Edite .bash_profile y agregue:

  export SBT_OPTS="${SBT_OPTS} -Dsbt.jse.engineType=Node -Dsbt.jse.command=$(which node)" 

Esto eliminó la advertencia para mí en OSX

En Windows:

  • Instalar node.js
  • Vaya a Panel de control – Sistema y seguridad – Sistema – Configuración avanzada del sistema
  • Haga clic en Variables de entorno …
  • Buscar en variables del sistema para SBT_OPTS
    • Si existe, haga clic en Editar … y concatene -Dsbt.jse.engineType=Node a variable
    • Si NO existe, haga clic en Nuevo … y escriba SBT_OPTS en Nombre de variable y -Dsbt.jse.engineType=Node en valor de variable
  • Haga clic en OKOKOK
  • Reinicie cualquier indicador de comando (cmd, PowerShell) que esté ejecutando Play Framework

en ubuntu

 curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs 

luego agregue lo anterior a su perfil en su directorio de inicio

 export SBT_OPTS="${SBT_OPTS} -Dsbt.jse.engineType=Node -Dsbt.jse.command=$(which node)" 

entonces

  . ./.profile 

para recargar tu perfil.

Para una instalación más flexible usando el administrador de versiones de nodo, consulte el siguiente tutorial: cómo instalar el nodo js en un servidor ubuntu 14.04

Construye de nuevo y la advertencia sobre el uso de Trireme debería haber desaparecido.

Como alternativa a la configuración de la variable de entorno, puede agregar esta línea a su archivo build.sbt:

 JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 

Consulte: https://github.com/sbt/sbt-js-engine

en Windows 10:

Instale node.js desde https://nodejs.org/en/ (El instalador agrega automáticamente node.js a su PATH)

Luego añade:

 export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node" 

a tus plugins.sbt en

 . ./project/plugins.sbt 

Trabajó para mí – la advertencia ha desaparecido!

EDITAR: Aparentemente, plugins.sbt fue el lugar equivocado para agregar el

 export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node" 

… aunque la advertencia desapareció al cargar mi aplicación, dio lugar a un error al reiniciar la aplicación un par de horas más tarde:

error: no encontrado: valor exportar

Me alegraría si alguien pudiera ayudar y decirme dónde colocar la exportación.

Los complementos de sbt que requieren un motor JS se usan solo en el proceso de comstackción, por lo que la falta de Node.js solo ralentiza las etapas de construcción de activos si se usan.

La aplicación construida no se ve afectada.

De todos modos, es posible que desee instalar node.js en su RUTA, donde debería ser detectado automáticamente.