web-dev-qa-db-fra.com

Minify outil pouvant être exécuté via terminal

Je cherche un outil ou un moyen de minimiser (semblable à Compresser mon code et ceci question sur Stack) tout le code de mon .xml, .css, .html et .js fichiers via le terminal d'Ubuntu. Je finirai par écrire le processus, mais pour le moment, je voudrais juste trouver quelque chose à tester. Existe-t-il un outil permettant de compresser tous ces formats de fichiers via le terminal?

34

Ce n'est pas l'option la meilleure mais c'est probablement la plus simple. Le compresseur YUI a longtemps été considéré comme le meilleur compresseur pour Javascript et CSS, offrant des améliorations de 20 à 40% par rapport aux autres minifiers.

Depuis, il a été remplacé par de nouveaux projets tels que Uglify.JS (ce que Grunt suggérera probablement), mais il reste assez facile de se lancer et d’être opérationnel dans Ubuntu.

Sudo apt-get install yui-compressor

C'est tout. Maintenant, vous pouvez exécuter yui-compressor myfile.js et il fera sa magie, mais pas aussi bien, ni aussi facilement qu’une pile correctement installée Node/Grunt/Uglify + YUI.

43
Oli

Vous pouvez facilement minify js avec node et uglify-js à partir de la ligne de commande:

  • installez uglify-js avec npm install uglify-js -g

  • lancez-le uglifyjs app-test.js > app-test.min.js


Pour les CSS, je suggérerais clean-css (probablement le minifier css le plus stable sur npm)
exemple d'utilisation:

cleancss -o public-min.css public.css

En ce qui concerne html, la minification ne vaut généralement pas le temps que vous investissez dans son installation, mais j’ai essayé html-minifier et c’est génial. outil.

Quoi que vous fassiez, assurez-vous de gzip ce que vous servez.

10
user2417031

Utilisez minify - Contrairement aux autres suggestions, cet outil réduit beaucoup plus de types de fichiers:

CSS     text/css
HTM     text/html
HTML    text/html
JS      text/javascript
JSON    application/json
SVG     image/svg+xml
XML     text/xml
8
Dennis

Il n'y a aucune raison de réduire au minimum les fichiers php (sauf que vous avez un espace disque très limité et que vous voulez en utiliser tout le contenu).

Si vous pouviez ajouter un objectif (que voulez-vous accomplir et pourquoi?), Quelqu'un pourrait vous montrer un meilleur moyen.

Les fichiers JS et CSS sont minifiés au moment de l'exécution et mis en cache dans la plupart des projets Web. Il y a minify ( https://github.com/mrclay/minify ), une "bibliothèque" php qui est capable de faire exactement cela. (peut également être exécuté avec php depuis le terminal)

Mais gardez à l'esprit qu'un gros fichier javascript ne nécessite pas un chargement plus rapide que 5 petits fichiers. Si vous avez besoin d’une raison et d’une solution pour cette déclaration, jetez un œil à http://headjs.com/

Que la source soit avec toi ...

3
mondjunge

J'ai eu de bons résultats avec Closure Compiler .

Le compilateur Closure est un outil permettant de télécharger et d’exécuter JavaScript plus rapidement. Au lieu de compiler du langage source en code machine, il compile à partir de JavaScript pour améliorer JavaScript. Il analyse votre JavaScript, l’analyse, supprime le code mort, réécrit et minimise ce qui reste. Il vérifie également la syntaxe, les références de variable et les types, et met en garde contre les pièges JavaScript courants.

Il a été développé par Google et écrit en Java. Il est emballé pour les systèmes Debian sous le nom closure-compiler et s’installe facilement sur les systèmes Ubuntu. Comme il n’utilise pas d’interface graphique, il nécessite le paquetage plus léger default-jre-headless.

Il est plus lent que le compresseur YUI mais la taille du fichier qui en résulte est (légèrement) plus petite. Il affiche également des messages d’avertissement utiles, similaires aux compilateurs d’autres langages de programmation.

Documentation: Mise en route

Usage:

closure-compiler --js input.js --js_output_file output.js
2
Anthony Geoghegan

Je recommanderais d'utiliser Grunt.js . C'est un outil d'automatisation qui propose des miniformes sous forme de plug-ins et peut être exécuté dans votre terminal via Node.js. Il ne devrait pas être nécessaire de minimiser PHP car le code s'exécute côté serveur et seule sa sortie HTML est envoyée au client.

Vous pouvez trouver les plugins disponibles ici

2
konapun

Une autre option consiste à utiliser la commande npxà partir de Node.js. npxexécute une commande d'un package Node.js sans l'installer explicitement.

# Minify JS
npx -p uglify-js uglifyjs -o app.min.js app.js common.js

# Minify CSS
npx clean-css-cli -o style.min.css css/bootstrap.css style.css

# Minify HTML
npx html-minifier index-2.html -o index.html --remove-comments --collapse-whitespace

# XML
npx pretty-data-cli --type xml --minify input.xml > input.min.xml
0
Ninh Pham