Single Page Application Javascript
J'ai construit un système sophistiqué de ajax-driven single page application web qui utilise un séjour backend web service servant JSON. Le javascript est divisé en de nombreux types de fichiers, chaque fichier représentant une sorte de fonctionnalité ou d'un composant.
Bien que le service ait été en alpha test, je viens d'être au service de l'ensemble de ces fichiers séparément, sans minification. Mais maintenant que je voudrais lancer une bêta version, j'ai vraiment besoin de combiner des fichiers, rapetisser, et la version. Je veux ajouter à mon processus de création, à l'aide de Maven.
Javascript Types De Fichiers
Je suis à l'aide de la suite de "types" de fichiers javascript, dont #3 et #4 sont mes préoccupations:
- Des fichiers externes, tels jquery et jquery-ui servi de Google CDN. Rarement modifier ces versions, peuvent être traitées manuellement.
- Les plugins Jquery que j'anime moi-même, comme fullcalendar ou de l'interface utilisateur-mise en page. Encore une fois, j'ai rarement mise à jour de ces nouvelles versions et peut gérer manuellement.
- L'ensemble de l'Application du code javascript. Javascript personnalisé qui est répartie dans de nombreux fichiers et peuvent changer de temps en temps. Tous ces fichiers doivent être chargés pour que l'application fonctionne.
- Caractéristique spécifique de code javascript. Javascript personnalisé qui est chargé à la demande lors d'une fonctionnalité spécifique est demandée. Ce code peut changer assez souvent et n'est pas chargé au démarrage.
Construire Des Objectifs
J'aimerais faire ce qui suit lors de mon processus de création:
- Concaténer tous type 3 fichiers javascript ensemble, rapetisser, et l'enregistrer comme un fichier unique avec un numéro de version. Par exemple:
app-2.0.6.min.js
, où 2.0.6 est le projet maven version. - Tous type 4 fichiers doivent être individuellement minifiés et enregistrés en tant que fichiers distincts avec des numéros de version dans le nom. Par exemple:
feature-abc-56ab32de29.min.js
, où 56ab32de29 est le numéro de version de ce fichier spécifique. - Mise à jour des fichiers HTML avec en
<script>
balises à pointer vers les fichiers javascript avec les numéros de version correct. - Mise à jour des fichiers Javascript que le type de charge 4 fonction javascript fichiers point à le droit à des versions.
Questions
Est-il un plugin maven pour vous aider avec la concaténation?
Est-il un plugin maven pour vous aider avec la minification? Idéalement, je voudrais utiliser Google Closure compiler, mais serait de travailler avec d'autres personnes si simple.
Est-il un plugin maven pour vous aider avec le contrôle de version?
Est-il possible d'avoir le type 4 fichiers javascript sont indépendantes de numéros de version? Idéalement, si un fichier ne change pas entre la version 2.0.5 et 2.0.6, il n'est pas nécessaire pour les utilisateurs de télécharger une nouvelle version et leur version en cache marcherait bien. J'utilise GIT pour le contrôle de code source, donc y aurait-il un moyen d'utiliser un fichier GIT du hashcode pour le contrôle de version?
Est-il une solution qui va comprimer le javascript qui est sur la ligne régulière des fichiers HTML sans tuer le HTML?
Est-il une solution qui permettra de compresser et de la version de mon fichier CSS?