0

私は、かなりの数の異なるコンプレッサーと方法を試して、しばらくの間、MVC3 プロジェクトでミニファイとバンドルを機能させようと試みてきました。最終的に、プロジェクト ファイルの msbuild タスクを介して Microsoft Ajax Minifier を使用することにしました。私はまだ自分の構成に慣れていませんが、すぐにつまずきにぶつかりました。JS スクリプトを縮小して 1 つのファイルに結合すると (以下のタスク定義を使用)、結合されたファイルには常に各スクリプトの縮小されたコピーが 2 つ含まれます。

追加した他の複雑な msbuild タスクをすべて切り取り、1 つの JS スクリプトを除いてすべて削除しましたが、まだ発生しています。以下のタグは、手動で変更したプロジェクト ファイルの唯一の部分です。

<UsingTask TaskName="AjaxMin" AssemblyFile="$(MSBuildProjectDirectory)\..\_Build\AjaxMinTask.dll" />
<Target Name="AfterBuild">
    <ItemGroup>
        <JsFiles Include="**\res\js\libs\jquery.js" />
    </ItemGroup>
    <AjaxMin Switches="-global:jQuery,$" JsSourceFiles="@(JsFiles)" JsCombinedFileName="Combined.min.js" />
</Target>

Combined.min.js は Web プロジェクトのルートに作成されますが (予想どおり)、jquery.js ファイルの 2 つの縮小コピーが含まれています。

私は Microsoft Visual Studio Ultimate 2012 RC (バージョン 11.0.50706.0 QRELRC 2012 年 7 月) を使用しており、参照 "AjaxMinTask.dll" ファイルは here の最新バージョン (4.59.4576.13505)です

さて、これが最も奇妙なことです。さらに、VS 2010 と VS 2012 の両方で完全に新しい MVC3 プロジェクトを作成し、上記の行をプロジェクト ファイルにコピーして貼り付けました。 JQuery ファイル (\scripts\jquery..js) へのパスであり、完全に正常に動作します

残念ながら、スタック オーバーフローには長すぎるため、プロジェクト ファイルを貼り付けることができません。そのため、縮小/結合しようとしている元の jquery ファイル、結果の「縮小された」ファイル、および AjaxMin アセンブリで圧縮しました。使用しています:

[ URL 編集済み ]

または、.Net 4.0 と MVC 3 を使用して、Visual Studio 2012 のリリース モードでビルドするときに縮小/結合できる他の提案された方法については非常にオープンです。

4

1 に答える 1

0

さて、ここに奇妙な落とし穴があります...「js」ディレクトリを別の名前(「javascript」)に変更することで、これを修正することができました(何日も悩まされた後!):

<JsFiles Include="**\res\javascript\libs\jquery.js" />

または、パスの先頭から「**\」を削除します。

<JsFiles Include="res\js\libs\jquery.js" />

これは何らかのバグだと思います。

于 2012-07-28T14:27:24.010 に答える