1

非常に厄介な質問のタイトルで申し訳ありません。誰かがこの質問を表現するより良い方法を思いつくことができれば、すぐに変更します.

私は Angular と RequireJS を使用してアプリを構築しており、パフォーマンス、依存関係、遅延読み込みを最適化するために、次のようなファイル構造を構築しようとしています。

/app
----/regisitration
--------_registration.module.js
--------registration.ctrl.js
--------registration.svc.js
--------registration.directive.js
----/courses
--------_courses.module.js
--------courses.directive.js
--------courses.controller.js
--------courses.service.js
--------/course
------------course.controller.js
----/admin
--------_admin.module.js
--------admin.controller.js

ルーティングを設定した場所で、任意のビューにアクセスするユーザーが、ディレクトリ (およびサブディレクトリ)内の他のすべてのファイルを連結し/registration/た全体をロードできるようにしたいと考えています。サイトの「セクション」全体を一度にユーザーに提供するだけでなく、複数の、場合によっては重複する依存関係を含める必要があるため、行き詰まりました。ほとんどのユーザーはサイトのセクションにアクセスすることは決してないため、上記のサンプルは、すべてのファイルを前もってロードしたくない理由を示していることを願っています。私はうなり声でこれを達成する最も効率的な方法を見つけようとしていますが、これまでのところ、次のようなコードで非常に手動で作業しています:_registration.module.js.js/registraionadmin

grunt.initConfig({
  concat: {
    app: {
      files: [
        {
            src: ['..app/registration/*.js', '!..app/registraion/*.module.js'], 
            dest: '..app/registration/_registration.module.js'
        },
        {
            src: ['..app/courses/*.js', '!..app/courses/*.module.js'], 
            dest: '..app/courses/_courses.module.js'
        },
        {
            src: ['..app/admin/*.js', '!..app/admin/*.module.js'], 
            dest: '..app/admin/_admin.module.js'
        }
      ],
    }
  },
});

私が達成しようとしていることを行うには、より効率的で手作業の少ない方法が必要だと思います。誰か提案はありますか?

4

1 に答える 1

0

Gruntfile 内で JavaScript を実行できることに注意してください。

grunt.initConfig({
  concat: {
    app: {
      files: grunt.file.expand({ cwd: 'app', filter: 'isDirectory' }, '*')
      .map(function(ngModule) {
        return { 
          src: ['app/' + ngModule + '/*.js', '!app/' + ngModule + '/*.module.js'],
          dest: 'app/' + ngModule + '/_' + ngModule + '.module.js'
        };
      })
    }
  },
});

これにより、構成エントリを更新することを忘れずに、新しいモジュールを作成できるはずです。

于 2014-06-12T06:52:00.163 に答える