3

私は最近、リッチインターネットアプリケーションの開発に関連して、JavaScriptプログラミングを大量に行ってきました。開発開始時の私の見解は、現在とほぼ同じです。JS RIAは機能しますが、開発ツールが不足しています。

私が特に見逃したツールの1つは、依存関係を管理するためのものでした。私が見つけたのは、JSファイルの依存関係をすべて宣言するHTMLページがたくさんあり、これを維持するのが難しくなったということです。

私が知りたいのは、私が着手したプロジェクトであるMavenJavaScriptImportについてのあなたの考えです。私の意図は、最終的にプロジェクトをオープンソースとしてリリースすることですが、現時点では、プロジェクトをいじくり回しているだけです(ただし、すでに多くのことが開発されています)。

依存関係の宣言

Mavenを使用してJSファイルを依存関係として宣言することに基づいた私の考え。これは、pomファイルでjQueryへのプロジェクトの依存関係を宣言する方法です。

<dependency>
  <groupId>com.jquery</groupId>
  <artifactId>jquery</artifactId>
  <version>1.4.2</version>
  <type>js</type>
</dependency>

jQueryに依存するファイルには、依存関係を宣言する2つの方法があります。

  1. コメントブロック内の@importステートメントを介して; また
  2. 必要なグローバル変数を宣言するだけです。

輸入

明示的なインポートは次の形式を取ります。

/**
 * @import com.jquery:jquery
 */

ご覧のとおり、インポートの形式はです<groupId>:<artifactId>。このアプローチには、依存関係を持つjsファイルで宣言されたファイル/バージョン情報がないという利点があります。これらのGAVパラメータは、POMファイルで宣言されたアーティファクトに解決されます。

グローバル変数

上記の@importの代わりに、依存ファイルがグローバルスコープで変数を宣言する場合、必要なのはそれらのグローバルシンボルのいずれかを宣言するだけです。たとえば、ファイルにjQueryが必要な場合:

var $;

... $はもちろん、jQueryによって定義されたグローバルです。

すべての依存関係がグローバルシンボルを宣言しているわけではないため、@ importも提案されていますが、必要なシンボルを宣言することは、すてきでクリーンです(そしてJSLintに準拠しています!)。

結論は

最終的に、JSリソースを必要とするHTMLファイルは、すべての依存関係ではなく、必要な直接のリソースを宣言するだけです。私のMavenプラグインは、すべてのJSファイル(ソースファイルと依存関係)を実行し、シンボルツリーを構築します。リソースを含むすべてのHTMLファイルには、すべての依存関係が確実に含まれるように、プラグインによって挿入されたスクリプト要素が含まれます。これはすべて、プロジェクトのフェーズがテストの前などに実行されたとき、またはリソースフェーズが実行されたときに、魔法のようなMavenの方法で発生します。

それで、あなたはどう思いますか?これは、JS RIAプロジェクトで使用する可能性のあるものですか?

4

2 に答える 2

1

JavaScript 開発者がプロ​​ジェクトの適切な依存関係管理を欠いていることに同意します。私は、HTML ファイルが 1 つのファイル js 依存関係だけをインポートし、すべての依存関係も同様に終了する方法を完全にフォローしているわけではありません。HTML ファイルをフィルタリングして、スクリプトのインポートを連結クラスのインポートに置き換える予定はありますか?

興味があれば、私は同じ道をたどり、最終的にhttps://github.com/ProggerPete/JavaScript-Toolsにたどり着きました。それは私にとってかなりうまくいっています。

于 2011-12-07T00:50:02.217 に答える
0

Bowerは .js の依存関係を管理するための楽しくて適切な方法だと思います。

于 2013-09-16T09:50:11.753 に答える