2015-07-18 1 views
16

Je suis nouveau sur le framework Play. S'il vous plaît expliquer la signification de l'avertissement ci-dessous.Attention: la détection de node.js a échoué, sbt utilisera le moteur JavaScript Trireme basé sur Rhino

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 

Je ne veux rien que ralentir ma demande alors s'il vous plaît conseiller si je changer le JS moteur à Node.js, mais mon projet est d'utiliser Java play framework côté serveur.

+2

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

Répondre

10

Vous devez installer Node.js, puis indiquer au moteur sbt/java de l'utiliser.

brew install node 

Modifier .bash_profile et ajoutez:

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

Cela a éliminé l'avertissement pour moi sur OSX

0

dans Windows 10:

de Node.js Installez https://nodejs.org/en/ (Le programme d'installation ajoute automatiquement Node.js à votre PATH)

puis ajouter:

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

à votre plugins.sbt dans

. ./project/plugins.sbt 

A travaillé pour moi - l'avertissement a disparu!

EDIT: Apparemment plugins.sbt était au mauvais endroit pour ajouter le

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

... bien que l'avertissement a disparu lors du chargement de mon application, il a conduit à une erreur lors de la relance de l'application d'un couple de d'heures plus tard:

error: not found: value export

Je serais heureux si quelqu'un pouvait m'aider et me dire où mettre l'exportation.

+0

'export' est une commande bash. Les chances sont, vous n'exécutez pas sbt sur Windows en utilisant bash wrapper, de sorte que la recette ne s'applique pas à Windows. Très probablement, quelque chose comme 'set' peut être utilisé dans un wrapper' .bat' à la place. –

4

Sous Windows:

  • Installer node.js
  • Aller à Panneau de configuration - Système et sécurité - système - Paramètres système avancés
  • Cliquez Variables d'environnement ...
  • Rechercher dans Variables système pour SBT_OPTS
    • Si elle existe, cliquez sur Modifier ... et concaténer -Dsbt.jse.engineType=Node-valeur variable
    • Si tel n'existe pas, cliquez sur Nouveau ... et écrire SBT_OPTS-Nom de la variable et -Dsbt.jse.engineType=Node à valeur variable
  • Cliquez sur OK -OK-OK
  • Redémarrer une invite de commande (cmd, PowerShell) qui est actuellement en cours d'exécution cadre de lecture
1

Comme alternative à définir la variable d'environnement, vous pouvez ajouter cette ligne à votre fichier build.sbt:

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node 

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

0

plugins SBT nécessitant un moteur JS ne sont utilisés que dans le processus de construction, et ainsi Node.js manquants ne fait que ralentir les actifs b étapes de construction si vous en utilisez.

L'application construite n'est pas affectée. Quoi qu'il en soit, vous pouvez installer node.js sur votre PATH, où il devrait être détecté automatiquement.