9
votes

Amber Smalltalk - Création d'un seul fichier .js pour le déploiement

Je l'ai vu ce sujet venir une ou deux fois, mais je ne pense pas que je l'ai vu tout solution définitive affiché.

J'ai essayé la route de combiner toutes mes Foo.deploy.js, Bar.deploy.js en seul fichier .js, puis y compris dans l'appel loadAmber (). Cela semble/ travailler raisonnablement bien, mais la majorité de la taille de téléchargement vient encore de Ambre internals.

Dans ma demande, les pires délinquants de taille sont:

  • 200K - jQuery UI
  • 95K - noyau Collections
  • 90K - jQuery
  • 87K - kernel-objets
  • 50K - Canvas
  • 40K - MonApp
  • 20K - kernel-classes

    Je ne peux pas faire aussi beaucoup sur la taille de jQuery UI, mais je peux faire beaucoup de choses sur la taille du noyau ambre, et le nombre de requêtes HTTP nécessaires pour aller les chercher. Le seul problème est que je ne peux pas comprendre comment dire Ambre ne pas auto-matiquement chercher du noyau-Objects.deploy.js, etc.

    Quelqu'un at-il réussi à emballer l'ensemble de leur javascript ambre dans un seul .js fichier avec succès?


1 commentaires

Veuillez noter qu'en décembre 2014 et Amber version 0.13 la dernière réponse qui a actuellement 0 upvotes est la bonne.


4 Réponses :


6
votes

Le compilateur Amber peut faire un peu de choses:

http://github.com/nicolaspetton/amber/blob/master/bin/amberc#l18-90

La commande suivante compilera JQuery et les packages répertoriés et générera des amber- Déployer.js: xxx

Notez le manque d'espaces entre les noms de fichiers répertoriés.

Aussi - vous pouvez télécharger le compilateur de fermeture Google http://closure-compiler.googlecode.com/files/compiler-latest.zip et mettre dans votre répertoire de maison (~ / compiler.jar) puis exécutez (remarquez l'option -o ): xxx

puis dans votre HTML vous peut simplement mettre: xxx


3 commentaires

Je reçois une erreur d'ambre non définie. Peut-être que c'est nécessaire boot.js aussi? Qu'en est-il d'Amber.js elle-même? Outre votre propre code, quoi d'autre serait nécessaire pour charger?


Je suppose que cette réponse n'est plus valide avec la version de développement actuelle, non?


Cette approche ne fonctionne plus pour la version 0.12. Voir la liste de diffusion d'ambre.



1
votes

Je crois que l'incantation est désormais censée être comme celle-ci -

./bin/amberc -O -m Counter st/Examples.st Onefile


1 commentaires

Suggestion: Postez ceci comme nouvelle question pour la version 0.12.4 de l'Amber. Des choses supplémentaires ont changé depuis oct. 2013.



3
votes

Démarrage d'Amber 0,13, vous pouvez utiliser l'optimiseur requisjs pour créer un fichier JS minimisé, y compris votre propre code, votre ambre et toutes les dépendances.

Pour charger l'ambre 0,13 alpha : xxx

La clé est le fichier de construction. Toutes les exigences d'installation utilisées directement dans Index.html vont ici. Par exemple, une application légèrement personnalisée.build.js: xxx

maintenant, exécuté r.js -o app.build.js va maintenant produire Un fichier JS unique minifié nommé All-in-1.js, qui est le seul fichier dont vous avez besoin pour charger à partir d'index.html


2 commentaires

@Hannes - Oui, mais selon le Readme de Github.com/herby/amd-config-Builder , il semble que vous puissiez le casser dans un fichier par dépendance externe. Ht


Amber 0,13 a été libéré. déploiement va maintenant avec une commande prédéfinie `` grogny Deploy``



1
votes

Amber version 0.13 publié

Amber version 0.13 a été publié .

dans cette version La commande xxx

crée crée un certain nombre d'autres fichiers un gruntfile.js ( http:/gruntjs.com/ ).

avec xxx

sur la ligne de commande Votre fichier JavaScript appelé the.js est modifié pour contenir tout ce qui est nécessaire pour le déploiement.

Ce moyen de déploiement que vous n'avez besoin que


0 commentaires