Yeoman (www.yeoman.io) を発表する Paul Irish の講演を見て、継続的なビルド環境を実行するという概念に夢中になりました。Yeoman の招待を待つだけでは満足できないので、Grunt と Brunch を試してみました。どちらも簡単にインストールでき、最小限の労力で新しいプロジェクトを立ち上げて実行できます。
既存のプロジェクトをいずれかのプラットフォームに移行する方法がわかりません。私のプロジェクトでは、単一の名前空間を使用し、モジュールに 2 つの規則 (1 つはユーティリティ用にインスタンス化するため) を使用します。それぞれの規則は、インスタンスまたは名前空間にエクスポートする自己実行型の匿名関数にラップされています。
少なくとも 200 個のモジュールと、名前空間への単純なヘルパー関数のエクスポートが多数あります。そのため、コンソールを使用してこれらを grunt/branch プロジェクトで作成し、各モジュールを個別に手動でインポートするのはまったく効率的ではありません。さらに、少なくとも 15 種類のサードパーティ JavaScript ツールを使用しています。これらをどのように持ち込むかは私には明らかではありません。
大規模な既存のプロジェクトを取得し、最小限のリファクタリングと任意のサードパーティ ツールのサポートで Grunt/Brunch に移行する最も効率的な方法は何ですか?
更新: 2 つのうち、Brunch の方が対処しやすいことがわかりました。標準の「スケルトン」(つまり「テンプレート」) を使用する場合は、{変更を加えたいフォルダー内のコマンドラインから} 「ブランチ 新規 [プロジェクト名] --skeleton git://github.com/brunch を実行します。 /simple-js-skeleton.git") 純粋な JS の場合、実際には非常に応答性の高い新しいフォルダー構造が得られます。「app」(独自のコード) または「vendor」(サードパーティ) フォルダーにドロップしたものはすべて、ファイル編集時に (「ブランチ ウォッチ」を実行すると) 自動的に再コンパイルされます。
これは素晴らしいことです。ドキュメントによると、ベンダー スクリプトがコンパイルされ、Brunch config.coffee ファイル (JSON テキスト ファイル) から一緒に連結される順序を制御します。このファイルへの変更は効果がないように見えるため、他のプラグインを期待するプラグインからサードパーティの競合状態が発生します。
さらに、独自のコードを自動作成された「アプリ」フォルダーにドロップすると、コードの自動コンパイルされたリアルタイムの編集バージョンが得られます。しかし、アクセスできません。Brunch はウィンドウ オブジェクトを難読化するため、window.myNameSpace への最初の名前空間宣言が失敗し、その後の名前空間へのライブラリ呼び出しもすべて失敗します。これは、ドキュメントが見つからない Brunch のモジュール システムと関係があります。
名前空間クラスを「ベンダー」フォルダーに配置することでこれを解決しました。これにより、ウィンドウオブジェクトに確実にアタッチされました。ただし、競合状態が発生しています。私の名前空間は、すべてのモジュールで常に使用できるわけではありません。
問題は次のとおりです。
内部ライブラリと外部ライブラリをすべて Brunch プロジェクトにコピーしたら、それらを適切な順序で読み込むようにアプリを構成するにはどうすればよいでしょうか?