2

npm で angular ディレクティブをオープンソース化しようとしていますが、そのための最も普遍的なパターンを考え出そうとしています。どうですか?3 つの質問があります。

!function(name, make) {
  make = make()

  // 1. Is this line needed?
  var angular = require('angular')

  // 2. Is this line needed?
  angular.module(name, []).directive(name, make)

  if (typeof module != 'undefined') module.exports = make
  else this[name] = make

  // 3. Is this line needed?
  if (typeof define == 'function') define(function() { return make })
}('exampleDirective', function() {
  return function() {
    return {
      link: function (scope, label, atts) {}
    }
  }
});
  1. require('angular')角度変数が存在すると仮定しても安全ですか?
  2. angular.module私の定義ではandを呼び出す必要がありangular.directiveますか、それとも消費するアプリだけがこれを行うべきですか?
  3. AMD 環境ではこれが必要ですか、module.exportsまたはグローバルで十分ですか?
4

1 に答える 1

1

1

  // 1. Is this line needed?
  var angular = require('angular')

いいえ。ライブラリを使用するアプリケーションは、常に独自のバージョンの AngularJS をインポートする必要があります。

2

  // 2. Is this line needed?
  angular.module(name, []).directive(name, make)

はい。nameアプリケーションは、次のように依存関係のリストにモジュールをリストする必要があります。

var myApp = angular.module('myApp',[name]);

3

  // 3. Is this line needed?
  if (typeof define == 'function') define(function() { return make })
}('exampleDirective', function() {
  return function() {
    return {
      link: function (scope, label, atts) {}
    }
  }
});

いいえ。ディレクティブをモジュールに配置するだけで、他の開発者がそれを使用できるようになります。

于 2016-12-09T02:56:03.907 に答える