49

Visual Studio ソリューションの複数のプロジェクトで使用される JavaScript ライブラリの作成を伴うタスクがあります。理想的には、JavaScript コードに対して、C# クラス ライブラリであるかのように動作するプロジェクト タイプを見つけたいと考えています。つまり、次のようになります。

  • JavaScriptコードをいくつかの出力** .js *ファイルに「コンパイル」(縮小、Closureによるチェックなど)します
  • この出力は、ASP.NET MVC プロジェクトなど、他のプロジェクトによって「参照」される可能性があります。
  • プロジェクトの「ビルド順序」を指定できました (標準の VS 機能)

これは VS 2010 / 11 で可能ですか、それとも BAT / PowerShell ファイルを作成して自分でスクリプトを作成する必要がありますか?

似ているが少し異なる質問: Visual Studio Project Template for JavaScript/VBScript?

4

4 に答える 4

9

Asp.Net MVCを開発した私の経験に基づいて、VisualStudioはJavaScriptのサポートを制限しています。私はあなたが望む行動を模倣するためにあなたがすることができる何かがあると思います:

  1. JavaScriptファイルを保存するプロジェクトを作成します。ビルドイベントをサポートしている限り、クラスライブラリプロジェクトはそれほど重要ではありません。JavaScriptファイルを新しいプロジェクト内に配置します。

  2. このプロジェクトでビルド後のステップを作成し、外部ツールを使用してJavaScriptを最小限に抑えます。YUICompressorを使用しています。ビルド後のステップには、次のような行が含まれている必要があります。

    java -jar $(ProjectDir)Scripts \ yuicompressor-2.4.7.jar $(SolutionDir)Scripts \ yourJsFile.js -o $(SolutionDir)Scripts \ yourJsFile.min.js --charset utf-8

  3. この新しいプロジェクトをソリューションに含めます。次に、Asp.Netプロジェクトの場合、JavaScriptファイルを参照するようにActive Server Pagesを設定します。ここでは、例としてRazor構文を使用しています。ただし、正しいパスを指定するのは難しい場合があります。

@if (@Model.IsDebug)
{
<script src="@Url.Content("~/Scripts/yourJsFile.js")"  type="text/javascript"> </script>
}
else
{
<script src="@Url.Content("~/Scripts/yourJsFile.min.js")"  type="text/javascript"></script>
}

繰り返しになりますが、Asp.NetプロジェクトからJavaScriptファイルを正確に参照できるようにするのは難しいかもしれません。しかし、私はそれを行う方法があると確信しています。おそらく、ビルド後のステップでJavaScriptファイルをいくつかの一般的な場所にコピーすることができます。これを行う場合は、JavaScriptプロジェクトのビルド後のイベントを「AlwaysRun」としてマークする必要があるため、JavaScriptファイルは常にコピーされます。

于 2012-03-02T22:28:14.493 に答える
7

良い質問です (+1)。私の決定は、すべてのjavascript一般ファイルを個別のjavascriptプロジェクトに配置し、リンクされたファイルを使用してweb/mvcプロジェクトで必要なjsファイルを使用することでした。

このようにして、利用可能なすべてのツールを使用して、javascript プロジェクト側からサブバージョン制御を使用し、個別の一般的なプロジェクト側から js ファイルを圧縮およびマージする可能性を得ることができます。

于 2012-04-12T08:31:58.510 に答える
3

私はこれについて本当に興味があります!誰かが他の/より良いアイデアを思いついたら、私に@コメントしてください.

オプション 1: Web Essentials を使用した ASP.NET Web プロジェクト

フロントエンドの JavaScript プロジェクトだけが必要な場合、これは簡単なオプションです。 Web Essentialsは、Visual Studio で簡単に使用およびインストールできます。これを使用して簡単に縮小できます。その後、テストにQunitを使用できます。これは、JavaScript クライアント側開発への非常に簡単で軽量なエントリ ポイントです。

オプション 2: Visual Studio 用の Node.js ツール

Node.js Tools for Visual Studio を使用します。これらの優れた多くのプロジェクト テンプレートが提供されます。特にクライアント側の js ライブラリを作成するだけの場合は、node.js を使用することにはならないかもしれませんが、node.js を使用するとテストに役立ち、元の回答で言及されている他のすべての優れた機能を npm にインストールする必要があります (オプション 3)。

これには多くのセットアップが含まれます。一部の .NET 開発者にとっては参入障壁となる可能性があります。

オプション 3: Web サイト プロジェクト

これが私が過去にやったことです:

ここに画像の説明を入力

私は実際にEclipseでこのプロジェクトを作成しました! (私を嫌いにならないでください)。その後、 Web サイト プロジェクトを使用して Visual Studio ソリューションを作成しました。確かに不要な node.js をインストールしましたが、軽量の Web サーバーとして使用していました。

次に、Nuget または Bowerを使用して、次のようなものをインストールできます。

  1. モジュール管理のためのrequire.js
  2. 単体テスト用のジャスミン
  3. ビルド用のgrunt または gulp (ミニフィケーション)
  4. コード修正のためにjslintまたはjshintをインストールできます。

これらすべてが必要なわけではありません。Bower は Visual Studio 2015 に統合されていると思います。これらの一部にはコマンド ライン ビルドが必要ですが、セットアップ後に実行するコマンドはほとんどありません。

于 2016-04-14T02:11:34.530 に答える