Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
共享JavaScript AMD模块时如何选择依赖项名称?_Javascript_Requirejs_Dependencies_Naming_Amd - Fatal编程技术网

共享JavaScript AMD模块时如何选择依赖项名称?

共享JavaScript AMD模块时如何选择依赖项名称?,javascript,requirejs,dependencies,naming,amd,Javascript,Requirejs,Dependencies,Naming,Amd,我正在编写一个依赖于(可能是任何其他依赖项)的工具。使用RequireJS,在main.js中: require.config({ 路径:{ “人性化教育”:“/path/to/humanize duration”/*.js*/, “我的工具”:“../path/to/my-tool”/*.js*/ } // ... }); 在my tool.js中: 定义([“人性化教育”],功能(人性化教育){ // ... }}); 我想分享我的工具(例如在GitHub上): (功能(全局,工厂){

我正在编写一个依赖于(可能是任何其他依赖项)的工具。使用RequireJS,在
main.js
中:

require.config({
路径:{
“人性化教育”:“/path/to/humanize duration”/*.js*/,
“我的工具”:“../path/to/my-tool”/*.js*/
}
// ...
});
my tool.js
中:

定义([“人性化教育”],功能(人性化教育){
// ...
}});

我想分享我的工具(例如在GitHub上):

(功能(全局,工厂){
if(typeof define==“function”&&define.amd){
定义([“人性化教育”],工厂);
}else if(导出类型==“对象”){
模块出口=工厂(要求(“人性化教育”);
}否则{
global.MyTool=工厂(global.humanizeDuration);
}
}(这个,功能(人性化教育){
// ...
}));
问题是:我应该为依赖项选择哪个名称?因为这取决于开发人员如何配置他们的
main.js
(对于RequireJS),我错了吗


在这里,我选择了
humanizeDuration
,因此我可以告诉开发人员使用这个名称,但是如果他们使用另一个选择
humanizeDuration
的工具,比如说呢?

如果你知道有一个最常用的名称将
humanizeDuration.js
称为AMD模块,请使用这个名称,但如果没有通用名称或无法确定通用名称,则可以使用
人性化教育。确保对其进行记录,以便用户知道预期结果。然后,如果出现问题,因为您的工具需要
人性化教育
,而另一个工具需要
人性化持续时间
,则您工具的用户可以使用:

这告诉RequireJS需要在任何地方(
“*”
人性化持续时间
,请加载模块
人性化教育
。显然,在这种情况下,
人性化教育是
路径中的内容。如果
路径
中有
人性化持续时间
,则整个过程可以反向映射

map: {
  '*': {
      "humanize-duration": "humanizeDuration"
  }
}