1

yui-compressorのようなコンプレッサーがjsまたはcssファイルを圧縮するために何をするのか、自分のコンプレッサーを作成したい場合はどのような手順を踏む必要があるのか​​を知りたいです。

4

3 に答える 3

2

YUI CompressorはJavaで記述されており(Java> = 1.4が必要)、Rhinoに依存してソースJavaScriptファイルをトークン化します。まず、ソースJavaScriptファイルを分析して、その構造を理解します。次に、トークンストリームを出力し、可能な限り多くの空白文字を省略し、すべてのローカルシンボルを1(または2、または3)文字のシンボルに置き換えます(evalなどの悪意のある機能に直面した場合)。または、YUI Compressorは、悪意のあるステートメントを含むスコープを難読化しないことにより、防御的なアプローチを取ります)CSS圧縮アルゴリズムは、微調整された正規表現のセットを使用して、ソースCSSファイルを圧縮します。YUI Compressorはオープンソースであるため、コードを見て、その動作を正確に理解することを躊躇しないでください。

ソース:http ://developer.yahoo.com/yui/compressor/#work

于 2012-11-16T07:47:43.057 に答える
1

公式ドキュメントサイトから

YUIコンプレッサーはどのように機能しますか? YUI CompressorはJavaで記述されており(Java> = 1.4が必要)、Rhinoに依存してソースJavaScriptファイルをトークン化します。まず、ソースJavaScriptファイルを分析して、その構造を理解します。次に、トークンストリームを出力し、可能な限り多くの空白文字を省略し、すべてのローカルシンボルを1(または2、または3)文字のシンボルに置き換えます(evalなどの悪意のある機能に直面した場合)。または、YUI Compressorは、悪意のあるステートメントを含むスコープを難読化しないことにより、防御的なアプローチを取ります)CSS圧縮アルゴリズムは、微調整された正規表現のセットを使用して、ソースCSSファイルを圧縮します。YUI Compressorはオープンソースであるため、コードを見て、その動作を正確に理解することを躊躇しないでください。」

ここにCss圧縮コード https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/CssCompressor.java

Js圧縮コードはこちら https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java

于 2012-11-16T07:50:49.417 に答える
0

私が知っているように、これらは主要なステップです:

  • 余分なスペースをすべて削除します(パーサーはそれらを必要としません)
  • キャリッジリターンを削除します(パーサーもそれらを必要としません)

JSの場合

  • もちろん、変数名をより短く、一意の新しいものに置き換えます

編集:良いアイデアを得る最も簡単な方法は、実際には1つのCSSとJSを作成し、圧縮後に違いを確認することです。

于 2012-11-16T07:40:46.503 に答える