Comment minifier facilement JS en PHP ... Ou autre chose
J'ai fait un peu de regarder autour, mais je suis encore un peu confus.
J'ai essayé Crockford de JSMin, mais Win XP ne peut pas décompresser le fichier exécutable pour une raison quelconque.
Ce que je veux vraiment est simple et facile à utiliser JS minifier qui utilise PHP pour rapetisser code JS--et de retourner le résultat.
La raison pour laquelle c'est parce que:
J'ai 2 fichiers (par exemple) que je suis de travail entre: scripts.js et scripts_template.js
scripts_template est normal que le code que j'écris--puis j'ai minifier et collez le minifiés script dans les scripts.js--celui que j'utilise sur mon site.
Je veux éradiquer l'homme du milieu simplement en faisant quelque chose de ce genre sur ma page:
<script type="text/javascript" src="scripts.php"></script>
Et puis pour le contenu de scripts.php:
<?php include("include.inc"); header("Content-type:text/javascript"); echo(minify_js(file_get_contents("scripts_template.js")));
De cette façon, chaque fois que j'ai mise à jour mon JS, je n'ai pas à constamment aller pour un site web de rapetisser et de re-coller dans les scripts.js--tout est mis à jour automatiquement.
Oui, j'ai aussi essayé de Crockford PHP Minifier et j'ai pris un coup d'oeil à PHP Rapide, mais je ne comprends pas les classes PHP pour l'instant...il n'y a rien là qu'un singe pourrait comprendre, peut-être quelque chose avec RegExp?
Que diriez-vous de rendre cette situation encore plus simple?
Je veux juste supprimer l'onglet espaces-je tiens à ce que mon code soit lisible.
Ce n'est pas comme le script de mon site lag epically, c'est juste n'importe quoi est mieux que rien.
Onglet retrait, n'importe qui? Et si possible, que diriez-vous de retirer complètement les lignes VIDES?
source d'informationauteur RickyAYoder
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé un PHP de mise en œuvre de JSMin par Douglas Crockford pour assez un certain temps. Il peut être un peu risqué lors de la concaténation de fichiers, il y a peut-être un point-virgule manquant sur la fin d'une fermeture.
Ce serait une bonne idée pour mettre en cache les minifiés de sortie et en écho à ce qui est mis en cache tant il est plus récent que le fichier source.
Vous pouvez également essayer de JShrink. Je n'ai jamais utilisé avant, puisque je n'ai pas eu de la difficulté avec JSMin avant, mais ce code ci-dessous devrait faire l'affaire. Je n'avais pas réalisé cela, mais JShrink nécessite PHP 5.3 et les espaces de noms.
Prendre un coup d'oeil à Assetic, un grand atout de la gestion de la bibliothèque en PHP. Il est bien intégré avec Symfony2 et largement utilisé.
https://github.com/kriswallsmith/assetic
Selon les restrictions de votre serveur (par exemple, ne pas courir dans mode sans échec), peut-être que vous pouvez également regarder au-delà de PHP pour un minifier et de l'exécuter à l'aide de
shell_exec()
. Par exemple, si vous pouvez l'exécuter Java sur votre serveur, mettre une copie de YUI Compressor sur le serveur et de l'utiliser directement.Alors scripts.php serait quelque chose comme:
Autre suggestion: construire la minification étape dans votre processus de développement, avant de les déployer sur le serveur. Par exemple, j'ai mis en place mon Eclipse PHP projets pour compresser les fichiers CSS et JS dans un "build" du dossier. Fonctionne comme un charme.