2014-10-21 27 views
6

Ich bin auf der Suche nach einem Bundler/Minifier für den Einsatz in meiner ColdFusion-Site. Ich habe über eine Stunde gesucht und nur ein passendes Plugin für cfWheels gefunden. Leider sind wir zu diesem Zeitpunkt an framework-one gebunden, so dass wir dieses Plugin nicht verwenden können.ColdFusion Bundler & Minification

Kann jemand ein Mittel zum Bündeln empfehlen & unsere js/css mit ColdFusion FW1 zu minimieren?

Ich denke an "borrowing" von asp.net System.Web.Optimization Bündler, aber das scheint nur über-kill für mich.

Danke!

+1

Haben Sie CFStatic (https://github.com/DominicWatson/cfstatic) gesehen? All das und mehr. –

+1

CFStatic ist nett, aber ich habe nie die warme und fuzzies von der Verwendung - es scheint, die Verkleinerung von JS & CSS-Dateien ist nichts, was CF tun sollte. Ich habe Knoten mit Grunt verwendet, um zu minimieren, wie Dateien aktualisiert werden. Ich habe Code, der die 'rohen' Dateien lädt, wenn ich einen URL-Parameter übergebe, um bei Bedarf zu debuggen. –

+0

Welchen Webserver benutzen Sie? Ich benutze IIS und benutze IISpeed ​​(PageSpeed ​​für IIS), um automatisch JS/CSS-Dateien zu conclamieren + zu minimieren, ohne irgendeinen Code in irgendwelchen Projekten ändern zu müssen. Die Optimierungen werden vom Webserver ausgeführt, nachdem ColdFusion den HTML-Inhalt generiert hat. (HINWEIS: Es ist sehr nützlich für Live-/Echtzeit-/Cached-Zustellung, aber nicht empfohlen für "Bündelung" um neu zu verteilen.) –

Antwort

4

Wir haben kürzlich diese Entscheidung getroffen. Am Ende entschieden wir uns für Gulp, einen Javascript-basierten Task-Runner, den Sie in der Entwicklung verwenden, und meine Empfehlung ist, dass Sie dasselbe tun. Gulp hat eine riesige Community und Userbase und jede Menge Plugins. Es kann Dateien während der Entwicklung auf Änderungen beobachten und automatisch neu verketten, minimieren (und ungefähr 1000 andere Dinge - siehe http://gulpjs.com/plugins/).

Mit einem Gulp-Plugin namens gulp-rev werden Dateien automatisch umbenannt, wie Datei-k34jzkl3.css, um Browser-Caches zu stürzen, wenn Änderungen vorgenommen werden. Mit einem anderen Gulp-Plugin, gulp-manifest, generieren wir automatisch eine JSON-Datei, die die ursprüngliche CSS-Datei dem cachebussierten Namen zuordnet (zB "file.css": "file-k34jzkl3.css") und dann haben wir einen einfachen CFC übersetzt diese Namen an die richtige Stelle in unserem HTML. Dies ist, was unsere Manifest JSON-Datei wie folgt aussieht:

{ 
    "baseline.css": "/global/baseline-82bcd2ab92.css", 
    "user.css": "/global/user-0d1d32170c.css" 
} 

Und dann sieht unser CFML Markup wie folgt aus:

<link rel="stylesheet" href="#application.asset.getAsset("baseline.css")#"> 

Welche HTML-Ausgabe erzeugt wie:

<link rel="stylesheet" href="/global/baseline-82bcd2ab92.css"> 

ich ein Repo erstellt mit dem Code unter https://github.com/ghidinelli/assets.cfc