2015-07-18 3 views
16

Ich bin neu im Play-Framework. Bitte erläutern Sie die Bedeutung der folgenden Warnung.Warnung: Die Erkennung von node.js ist fehlgeschlagen, sbt verwendet die Rhino-basierte Trireme-JavaScript-Engine

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 

Ich will nicht alles, was so meine Anwendung verlangsamen bitte Rat, wenn ich die JS-Engine node.js ändern sollte, aber mein playframework Projekt wird mit Hilfe von Java auf der Serverseite.

+2

https://www.playframework.com/documentation/2.4.x/Assets#Managed-assets – danielnixon

Antwort

10

Sie müssen Node.js installieren und dann der sbt/java-Engine mitteilen, sie zu verwenden.

brew install node 

bearbeiten Bash_profile und fügen:

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

Diese die Warnung für mich auf OSX eliminiert

0

in Windows 10:

installieren node.js von https://nodejs.org/en/ (Der Installer automatisch node.js zu PATH fügt)

dann hinzufügen:

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

zu Ihrem plugins.sbt in

. ./project/plugins.sbt 

gearbeitet für ich - die Warnung ist verschwunden!

EDIT: Offenbar plugins.sbt war der falsche Ort, um die

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

... obwohl die Warnung verschwunden hinzufügen, wenn mein app geladen, führte es zu einem Fehler, wenn die App ein paar Neubelebung von Stunden später:

Ich würde mich freuen, wenn jemand helfen könnte und mir sagen, wo man den Export setzen.

+0

'export' ist ein Bash-Befehl. Die Wahrscheinlichkeit ist groß, dass Sie unter Windows mit dem Bash-Wrapper keine sbt ausführen, daher gilt das Rezept nicht für Windows. Höchstwahrscheinlich kann etwas wie 'set' in einem' .bat'-Wrapper verwendet werden. –

4

In Windows:

  • Installieren node.js
  • Zum Systemsteuerung - System und Sicherheit - System - Erweiterte Systemeinstellungen
  • Click Umgebungsvariablen ...
  • Suche in Systemvariablen für SBT_OPTS
    • Wenn eine solche vorhanden ist, klicken Sie auf Bearbeiten ... und verketten -Dsbt.jse.engineType=Node-Variablenwert
    • Wenn ein solcher nicht vorhanden ist, klicken Sie auf New ... und schreiben SBT_OPTS-Variablenname und -Dsbt.jse.engineType=Node zu Variablenwert
  • Click OK-OK bis OK
  • Neustart jeder Eingabeaufforderung (cmd, Powershell), die zur Zeit spielen Rahmen
1

Als Alternative zum Einstellen des Umgebungsvariable ausgeführt wird, können Sie diese Zeile in build.sbt-Datei hinzu:

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 

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

0

sbt Plugins ein JS-Engine erfordern nur in dem Build-Prozess verwendet wird, und so fehlt Node.js verlangsamt nur nach unten Vermögen b Bauphasen, wenn Sie eine verwenden.

Die erstellte Anwendung ist nicht betroffen.

Wie auch immer, Sie können node.js in Ihrem PATH installieren, wo es automatisch erkannt werden soll.

Verwandte Themen