8

変更されたJavaScriptファイルをオンザフライで最小化するために、テストサーバーでyuicompressor.jarを使用しています。Webサイトをパブリックサーバーにデプロイしたので、サーバーのポリシーでexec()またはそれに相当するものの使用が禁止されていることに気付きました。そのため、Javaの実行はこれ以上ありません。

PHPに実装されたまともなオンザフライJSコンプレッサーはありますか?私が見つけたのはこれに似ている唯一のものはミニファイでしたが、それはキャッシュとすべてを備えた本格的な圧縮ソリューションです。ファイルを分離し、最小化されたファイルを独自の命名規則に従わせたいので、Minifyはこの目的には少し複雑すぎます。

yuicompressorのようなツールは、ファイル名またはJavaScriptのいずれかを入力として受け取ることができ、ファイルに書き込むか、圧縮されたJavaScriptを出力する必要があります。

編集:明確にするために、スタンドアロンとして使用する必要がないものを探しています(つまり、GET変数をスニッフィングするのではなく、関数から呼び出すことができます)。コンプレッサーが欲しかったのなら、ミニファイは明らかに良い選択でしょう。

EDIT2:私がこの質問をしてから5年間で多くの変化がありました。今日は、フロントエンドワークフローをサーバーコードから分離することを強くお勧めします。JS開発には優れたツールがたくさんありますが、最も些細なjQueryの機能強化を除いて、自動化されたバンドル、テスト、リンティングを備えた完全なワークフローを用意し、生のファイルではなく縮小されたバンドルをデプロイすることをお勧めします。

4

3 に答える 3

6

はい、あります。それはミニファイと呼ばれます。

複雑さの点で心配する唯一のことはグループを設定することであり、実際には何もありません。<script>1つまたは<link>ステートメントで複数のJS/CSSが必要な場合は、groupsConfig.phpファイルを編集します。

return array(
     'js-common' => array('//js/jquery/jquery-1.3.2.min.js', '//js/common.js', '//js/visuals.js',
'//js/jquery/facebox.js'),
     'css-common' => array('//css/main.css', '//css/layout.css','//css/facebox.css')
);

上記の「js-common」グループを含めるには、次のようにします。

<script type="text/javascript" src="/min/g=js-common"></script>
于 2009-06-09T22:18:10.903 に答える
3

(phpを使用してjarファイルを直接処理する方法がわからないのとまったく同じものを探していたのはわかっています-それが私がここにたどり着いた方法なので、見つけたものを共有しています)

Minifyは、たくさんの機能を備えた巨大なライブラリです。ただし、縮小部分は非常に小さなクラスです:http ://code.google.com/p/minify/source/browse/trunk/min/lib/Minify/YUICompressor.php

&非常に使いやすい:

//set the path to the jar file
Minify_YUIcompressor::$jarFile=_ROOT.'libs/java/yuicompressor.jar';
//set the path to a writable temp folder
Minify_YUIcompressor::$tempDir=_ROOT.'temp/';

//minify
$yourcssminified=Minify_YUIcompressor::minifyCss($yourcssstringnotminified,$youroptions)

jsの場合も同じプロセスです。より多くの機能が必要な場合は、ライブラリから選択してソースを読み、アプリから直接呼び出す方法を確認してください。

minifyはjarファイルの使用に基づいているため、質問をよく読みませんでした。opはサーバー構成でとにかくそれを使用できません。

Minifyには、yui以外の縮小方法も含まれます。例:

http://code.google.com/p/minify/source/browse/trunk/min/lib/JSMinPlus.php?r=443&spec=svn468

于 2011-11-23T12:23:58.883 に答える
0

リッサを試してみてください:

Lissaは、一般的なCSSおよびJavaScriptの読み込みユーティリティです。Lissaは、現在のローダーの制限の1つを解決することを目的としたYUIPHPローダーの拡張です。コンボローディング。YUI PHPローダーには、すべてのYUI JavaScriptやCSS要件をリソースタイプごとに1つのリクエストとして出力することで、HTTPリクエストを減らし、パフォーマンスを向上させることができるコンボローダーが付属しています。つまり、8つのYUIコンポーネントが必要で、最終的には13のファイルになりますが、それでも2つのHTTP要求しか作成できません。1つはCSS用で、もう1つはJavaScript用です。それは素晴らしいことですが、YUI以外のカスタムリソースについてはどうでしょうか。YUI PHPローダーはそれらをロードしますが、個別のインクルードとしてロードするため、コンボサービスの利点を逃し、ページに対するHTTPリクエストの数が増加します。

于 2009-11-29T08:19:53.270 に答える