0

背景: Web ブラウザー コントロールによって表示される Web ページにプログラムによって挿入される JavaScript のブロックを含む C# プロジェクトを取得しました。ただし、javascript のこのブロックを縮小して、リソース ファイルのプロパティに埋め込む/書き込むことが望ましいです。JavaScriptの縮小が可能であることは知っています。ビルド前のイベントを使用して、結果の文字列をリソース ファイルの特定のプロパティに書き込むことも可能かどうか疑問に思っていました。

PS: もちろん、結果の文字列をファイルに書き込んで、リソース プロパティにバインドすることもできます。ただし、実行時にパフォーマンスが低下することを恐れて、そのようなことは避けたいと思います (javascript ブロックが頻繁に読み込まれます)。これについて間違っている場合は、お気軽に修正してください。

4

1 に答える 1

0

同様の問題に苦しんでいる人のために、これはVisual Studio 2010のコンテキストで私が選択した(代替ソリューションが不足している)段階的なアプローチです。以下の方法は、JavaScriptファイルの縮小を統一的に処理します使用する可能性のあるバージョン管理システムを尊重しながら(ホストされているファイルに幻の変更を生成しないようにすることで)。手順は次のとおりです。

  1. JavaとGoogleのクロージャーをインストールします(javascriptの縮小化用)。

  2. プロジェクトのリソースを開き、file-resourcesに移動して、ダミーのfile-propertya-lafoo.txtを作成します。これにより、Resourcesという名前のディレクトリが作成され、プロジェクトに含まれるはずです。この後、foo.txtファイルを削除できます。

  3. Resourcesディレクトリを右クリックして、Uniminified.jsで終わるjavascriptファイル(たとえば、MyInjectableJavascript.Unminified.js)を作成します。このファイルのプロパティを編集し、ビルドアクションが「なし」に設定されていることを確認します。ちなみに、リソースでこのファイルを参照しないでください。

  4. 次に、リソースのfile-propertiesに戻り、上記で作成したファイルと同じベース名で、今回はmin.jsで終わる新しいfile-propertyを追加します(たとえば、MyInjectableJavascript.min.js)。

  5. resourcesディレクトリの下に作成された.min.jsファイルに移動し、それを埋め込みリソースに変換します。

  6. 次に、プロジェクトのプロパティ->ビルドイベントに移動し、次のコードを挿入します。

ビルド前のイベント(1行):

call "$(ProjectDir)JavascriptMinificationWithGoogleClosure.bat" "$(ProjectDir)Resources\MyInjectableJavascript.Unminified.js" "$(ProjectDir)Resources\MyInjectableJavascript.min.js"

ビルド後のイベント(2行):

 del "$(ProjectDir)Resources\MyInjectableJavascript.min.js"
 call echo. 2> "$(ProjectDir)Resources\MyInjectableJavascript.min.js"

これは、プロジェクトがビルドされる前にjavascriptコードを縮小し、ビルド後に縮小されたファイルを単一の改行にリセットすることを意味します。

注:縮小ファイルをまとめて削除しない理由は、リソースによって参照されている縮小ファイルが見つからない場合(私の場合、Visual Studioがリソースを削除した場合)、Visual Studioがエラーを生成し、非常に奇妙な動作をするためです。 Designer.csは完全に真っ青です...5回)。min.jsファイルを1つの改行に切り捨てることで、ファイルを維持し、バージョン管理システムに追加することもできます。

  • プロジェクトのディレクトリの下に、次の内容のJavascriptMinificationWithGoogleClosure.batという名前のファイルを配置します。

    "%JAVA_HOME%jre6\bin\java" -jar "%CLOSURE_JS_HOME%compiler.jar" --js %1 --js_output_file %2

  • 最後に、JavaとClosureの実行可能ファイルをインストールしたディレクトリをそれぞれ指すJAVA_HOMEとCLOSURE_JS_HOMEという名前の2つの環境変数([コンピューター]->[プロパティ]->[環境変数]を右クリック)を作成します。例えば:

    JAVA_HOME -> C:\Program Files\Java\ CLOSURE_JS_HOME -> C:\Program Files\Closure\

注:2つのパスのそれぞれの最後に、末尾のスラッシュを必ず含めてください。

  • これで、以下を使用して、C#コードからのビルド中に生成される縮小されたJavaScriptにアクセスできます。

    Resources.MyInjectableJavascript_min

お役に立てれば。幸運を。

乾杯、ドミニク

于 2011-12-19T15:51:08.280 に答える