1

私は gruntjs と usemin タスクを使用しています。これをhtmlファイルに追加しました:

<!-- build:js scripts/all.js -->
<script src="../../core/module.js"></script>
<script src="../../core/base/alerts/alert-item.js"></script>
<script src="../../core/base/alerts/alerts-list.js"></script>
<script src="../../core/base/base_model.js"></script>
<script src="../../core/base/cursor.js"></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<script src="../../core/...<another script>...."></script>
<!-- endbuild -->

ご覧のとおり、すべてのスクリプトは次の場所にあります。../../core最初に使用するように usemin に指示し../../core/module.js、次に../../core/**/*すべてのファイルについて言及しないようにするにはどうすればよいですか?
これはまったく可能ですか?

4

2 に答える 2

0

単調なタスク構成の場合、グロビング パターンを使用してファイル リストを動的に作成できます。

gruntjs ドキュメントの「グロビング パターン」と「動的にファイル オブジェクトを構築する」に関する 2 つの連続する段落をご覧ください: http://gruntjs.com/configuring-tasks#globbing-patterns

usimin タスク構成を貼り付けると、適切なパターンを構築するのに役立つ可能性があります

于 2013-12-02T17:44:37.297 に答える
0

編集:

コメントと、すべてのコードを制御しているわけではないという事実に基づいて、代わりに、サンプル gruntfileuseminで示されているように「src」および「dist」ディレクトリ構造を使用して一括 move/concat/uglify を処理します。

  1. ソース HTML で、grunt タスクによって「dist」ディレクトリに生成されるファイルを参照します。
  2. に設定grunt-watchcopy、変更時に「src」からのファイルをconcat設定します。uglify
  3. テストや本番環境へのアップロードが必要な場合、「src」で追加または変更されたスクリプトを気にせずに、「dist」から実行できます。
  4. 他のプロジェクトから新しいファイルを追加するだけの場合grunt-watchは、#3 と同じ 3 つのタスクを実行する「ビルド」タスクを作成して呼び出すことができます。

調べてみると、いくつかの JavaScript フレームワークでこのアプローチの例を見つけることができます。これらのフレームワークを借りて、必要に応じて変更することができます。 この記事は役に立つかもしれません。

オリジナル:

これと今日尋ねられた他の質問に基づいて、useminはあなたのニーズに合った適切なツールではないかもしれません. require.jsのようなものは、HTML 内のスクリプト タグの数を削減しますが、それらを別のファイル/場所に列挙する必要性をシフトします...そして、すべてのスクリプトをマニフェスト/リストとして記述することに不満があるようですコード。

Grunt はファイルをまとめて処理する方法を提供しますが、これは、ディレクトリをコピーするとき、または他の同様のリスクの低い一括作業を行うときに最もよく利用されます。したがって、ロジックなしで usemin を一括ロードする方法を見つけることができますが、「すべての JavaScript をロードする」ことは一般的に悪い習慣であることをお勧めします。...しかし、それがあなたの望むものなら、一括連結と醜化が答えではない理由をお尋ねします。

プロジェクトのサイズや複雑さが増すにつれて、マニフェストまたは明示的にファイルをリストすることの利点がより明確になります。ディレクトリにファイルを追加/削除する無邪気なミスは、混乱を引き起こす可能性があり、原因はすぐにはわかりません。HTML でファイルを明示的にリストするuseminと、ディレクトリに欠落している場合にエラーがスローされます。後で、ディレクトリを監査して、使用されなくなったにもかかわらず残っているものを確認することもできます。それらをグロブしても、これらの利点のいずれも提供されません。

マニフェストがなければ、VCS を賢明に使用し、前回のコミット以降の変更を確認することで問題を解決できます...しかし、それは「ねえ、script.jsが削除されたuseminので、barf の原因になっている」と言うほど簡単でも楽しいことでもありません。ファイルを置き換えて、ビルドを再び機能させるために、誰かが私に飲み物を借りています!」

于 2013-12-02T18:10:06.030 に答える