web-dev-qa-db-ja.com

JavaScriptを縮小するための.NETライブラリはありますか?

プログラムで.NET WebアプリからJavaScriptファイルを作成していますが、それをユーザーに渡す前に縮小したいですか?これをオンザフライで実行するためのライブラリまたはテクニックはありますか?

感謝

30
Hairgami_Master

ファイルに保存する前にC#でJavaScript文字列を縮小できるようにしたいだけの場合は、 MS Ajax Minifier または 。netのYUIコンプレッサー のいずれかを使用します。 。これらはどちらも、これを可能にするAPIを公開しています。 ajax minifierを使用したサンプルは次のとおりです。

var minifier = new Microsoft.Ajax.Utilities.Minifier();
var minifiedString = minifier.MinifyJavaScript(unMinifiedString);

YUI Compressor for .netの使用:

var minifiedString = JavaScriptCompressor.Compress(unMinifiedString);

AjaxミニファイアとYUI Compressorライブラリの両方がNuget経由で利用できます。

61
Matt Wrock

.NETでjavascriptで記述されたminifierを直接使用しないのはなぜですか(JScriptコードとして機能するかどうかを試してください)。 Uglify.jsが思い浮かびます...

2
user1046334

JSMINのC#ポートを使用します。 http://www.koders.com/csharp/fidC8F76D32D2FB3B213046C30CD8B362820FFFD604.aspx?s=file#L15

それはかなりうまくいきます。

1
Mike Ruhlin

これを手動で使用します。

http://dean.edwards.name/packer/

ファイルを圧縮し、アップロードしてからパックを元に戻し、ソースコードをそのままにします。量産コードのみをパックします。

1

まあ、私はあなたがする必要がある3つのことがあると思いますminifyスクリプトファイル:

  1. 長い変数を短くする
  2. コメントを削除
  3. 不要な空白(タブ、スペース、改行)を削除する

これらはすべて実行時に置き換えるのが比較的簡単ですが、コードの記述に少し時間がかかります。変数の短縮については、スコープ内で、たとえば2文字よりも長い変数を見つけます。次に、省略して、コードブロック(変数のスコープ)でそれを実行します。

コメントの削除は簡単です。空白の削除も簡単です。シングルラインの場合は、//を見つけて、キャリッジリターン/改行フィードまで削除します。空白、タブをスペースに、複数のスペースをスペースに、キャリッジリターン/改行フィードをスペースに置き換えます。

0
user596075

Closure Compiler を使用できますが、ユーザーがWebサイトにアクセスするたびにファイルを縮小することはお勧めしません。新しいコミットをデプロイする前にすべてのファイルをビルドする方がはるかに優れています。 ツールに関するこの記事 を見てください。