2010-12-15 91 views
1

J'essaie de créer une bibliothèque JavaScript à partir de GWT. Le gros problème: je veux fusionner les fichiers JavaScript en un seul.Fusionner des fichiers générés par GWT

GWT Basicly générer deux fichiers:
[Your_Project] .nocache.js => Le bootstrap
[MD5] .cache.html => La bonne API JavaScript (?).

index.html --- charge ---> [Your_Project] .nocache.js ---- ---- charge> [MD5] .cache.html

Je suis en train de changer cela par:
index.html --- charge ---> everything.js


Mais comment fusionner [Your_Project] .nocache.js et [MD5] .cache.html dans un Fichier JavaScript ...? Je ne suis pas sûr que ça va être une tâche facile.

Martin Magakian

+0

Etes-vous sûr que GWT est ce que vous voulez utiliser ici? La raison pour laquelle je demande que vous essayez de subvertir le processus d'amorçage, qui est en fait une caractéristique majeure de GWT. GWT est un outil pour construire des applications web, pas des bibliothèques JS. –

+0

Une réponse tardive, l'idée était de compiler dans un fichier JavaScript afin de charger le JavaScript sur un iPhone. Dans ce cas, je connaissais le webbrowser –

Répondre

2

Il est possible, mais seulement pour une seule compilation distincte. Par exemple, le suivant compile un fichier unique pour Firefox:

<set-property name="user.agent" value="gecko"/> 
<add-linker name="sso"/> 

Parce que GWT génère des versions spécifiques du navigateur, cela signifie qu'un seul navigateur est pris en charge dans le fichier compilé. Si vous avez besoin d'autres navigateurs, modifiez user.agent et compilez à nouveau. Notez que si vous voulez prendre en charge plusieurs navigateurs, vous devez fournir la bonne version à l'utilisateur, ce que GWT fait pour vous si vous utilisez le processus de compilation normal. Donc je ne suis pas sûr si c'est ce que tu veux vraiment.

+0

+ 1 L'utilisation de l'éditeur de script unique n'est généralement une bonne idée que si vous ne prévoyez de prendre en charge qu'un navigateur (et les paramètres régionaux). –

+0

"ce n'est qu'une bonne idée si vous ne prévoyez de prendre en charge qu'un navigateur" - ... ou si vous pouvez utiliser "permutations logicielles" (http://code.google.com/p/google-web-toolkit/wiki/SoftPermutations – snorbi

3

Utilisez

<collapse-all-properties /> 
<add-linker name="sso" /> 

dans votre fichier ProjectName.gwt.xml. De cette façon, toutes les permutations sont jointes dans un seul fichier JavaScript.

+0

Mieux encore, il est possible d'intégrer tout le fichier js dans la page hôte pour réduire davantage les requêtes http. http://stackoverflow.com/questions/9678675/deploy-gwt-application-as-single-javascript-file – Ajax