我认为可能有两种情况:
1)您的指令是独立的,实际上并不依赖于应用程序中的任何内容。
在这种情况下,您可以将其放入自己的模块中(无论是 RequireJS 还是 angular):
// my-directive.js
var module = angular.module('my-directive', []);
module.directive('myDirective', [
...
]);
// app.js (depends on my-directive.js)
var app = angular.module('myapp', ['my-directive']);
AngularAMD 支持此用例,请参阅第 3 方 AngularJS 模块。
2)您的指令取决于您的应用程序内部的某些内容。在这种情况下 - 将其放入同一个模块中(在角度和 RequireJS 方面也是如此)。
// app.js
var app = angular.module('myapp', []);
app.directive('myDirective', [
...
]);
3) [更新] 另一个解决方案:AngularAMD 还支持一种特殊情况来定义和加载应用程序范围的模块。