2017-05-03 17 views
2

あなたは私たちがエクスポートangularjsモジュールは

https://github.com/johnpapa/angular-styleguide/tree/master/a1#iife

私-dir.js

(function() { 
    'use strict'; 

    angular 
     .module('my.dir', []) 
     .controller('MyDirController', MyDirController), 
     .directive('my-dir', MyDirDirective); 

    function MyDirController() { 

    } 

    function MyDirDirective() { 
     return { 
      restrict: 'E', 
      controller: MyDirController 
     } 
    } 
})(); 

アプリを使用するか、スタイルガイドに従って、生命維持にangularjsモジュールをラップすることになっています。 js

(function() { 
    'use strict'; 
    angular 
     .module('app', ['my.dir']) 
})(); 

しかし、今はwebpackを使用してes6モジュールをバンドルしています。このIIFEとexportはどのように使用するのですか?エクスポートは最上位のコマンドでなければならないため、export default angular.module('my-dir', [])は実行できません。また、モジュール名の文字列を返すだけですか?したがって、それはappモジュールの必須として含めることができます。ベストプラクティスとは何ですか?

これは動作しますが、あなたは、モジュール名を再入力する必要があり、かつWebPACKのモジュールに移動した後(Iは大文字である必要がありますと仮定)生命維持の外輸出

(function() { 
    angular.module('my.dir', []) 
     .controller('MyDirController', MyDirController) 
     .directive('my-dir', MyDirDirective); 

    function MyDirDirective(appPath) { 
     return { 
      restrict: 'E', 
      scope: {}, 
      bindToController: {}, 
      controllerAs: '$ctrl', 
      template: '<div ng-bind="$ctrl.msg"></div>', 
      controller: MyDirController 
     }; 
    } 

    function MyDirController() { 
     var self = this; 
     self.msg = "Hello World"; 
    } 
})(); 
export default 'my.dir' 
+2

構築する場合、今すべてが、デフォルトではモジュールであるとして必要はなくなりました。これらのツールは、あなたの懸念事項も解決します。 webpack/babelを使用すると、コードを書くための他のアプローチをとることができます:上記のコードをcommonjsモジュール(IIFEなし)で記述し、上記をTypescriptまたはES6クラスに変換します。あなたのコードベースが、長期的な利点は十分に価値がある:) –

答えて

2

を持つ少し厄介だが、新しい構造は

app.js

import myDir from './my-dir.js' 

angular.module('app', [myDir.name]); 

私-dir.js

0123となっています

生命維持には常にWebPACKのを使用して、私はバベルまたはWebPACKのようなツールを使用するときに角度スタイルガイドで生命維持の使用についてのコメントは適用されませんよね

関連する問題