5 votes

Jouer cadre 2.1 précompilant poignées emberbars

Je cherche à écrire un plugin SBT pour PlayFramework 2.1 qui précompilerait les modèles handlebars situés dans app/assets/templates. Je partagerai bien sûr ce plugin une fois qu'il sera terminé. J'ai trouvé ce tutoriel http://eng.netwallet.com/2012/04/25/emberhandlebars-template-precompilation-with-play/ qui était un peu obsolète, mais ce n'était pas un problème de l'adapter pour Play! 2.1.

Ensuite, j'ai essayé de compiler un fichier de modèle simple, mais SBT a échoué avec le message suivant:

ember: traitement du modèle test

[error] /.../templates/test.handlebars: Erreur de compilation[exception inattendue pendant la compilation Ember (fichier=/.../templates/test.handlebars, options=List(), ember=ember-1.0.0-pre.4.js): org.mozilla.javascript.EvaluatorException: nom manquant après l'opérateur . (ember-1.0.0-pre.4.js#3309)]

[error] (MyProject/*:play-copy-assets) @6dap83075: Erreur de compilation dans /.../templates/test.handlebars:null

[error] (MyProject/compile:resources) @6dap83075: Erreur de compilation dans /.../templates/test.handlebars:null

ember-1.0.0-pre.4.js à la ligne 3309 a un mot-clé volatile, qui est apparemment réservé dans Rhino.

Je suis loin d'être un expert en Rhino, c'est pourquoi je me demande si quelqu'un connaît une solution pour contourner cela? Je ne recherche pas une solution parfaite pour l'instant. Toute solution (même des hacks rapides et sales comme l'utilisation d'un ember.js personnalisé) qui a une chance raisonnable de fonctionner pour la plupart des modèles handlebars simples fonctionnerait et nous nous préoccuperions de la peaufiner une fois que la fonctionnalité sera là et que le plugin SBT sera disponible.

Merci d'avance!

0voto

J'ai écrit un plugin équivalent pour Grails. Je reçois la même erreur exacte si je passe de rhino 1.7R4 à 1.7R2. Vous devez passer à org.mozilla:rhino:1.7R4.

Si vous rencontrez d'autres problèmes, je vous suggère de jeter un coup d'œil à mon code source. Vous pouvez commencer ici : https://github.com/florent-blanvillain/grails-ember-templates-precompiler/blob/master/src/groovy/org/grails/plugin/ember/handlebars/Precompiler.groovy

Santé

0voto

ANewGuy4 Points 49

Cela est dû à ember utilisant le mot-clé volatile qui est réservé pour rhino, car il est conforme à JavaScript EC3. Le réglage de rhino pour utiliser EC5 n'a aucun effet

Voir https://github.com/emberjs/ember.js/issues/1202

Cela est encore pire dans ember-1.0.rc1 car ils utilisent d'autres mots-clés réservés. Une solution consiste à créer un fichier ember.js personnalisé avec ces mots-clés renommés

0voto

ANewGuy4 Points 49

Mon plugin pour la précompilation Ember dans Play 2.1 fonctionne. Il prend en charge ember-1.0.0-pre.2, ember-1.0.0-rc.1 et ember-1.0.0-rc.3 et résout les problèmes liés à rhino.

Voir https://github.com/krumpi/play-emberjs

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X