共享JavaScript AMD模块时如何选择依赖项名称?
我正在编写一个依赖于(可能是任何其他依赖项)的工具。使用RequireJS,在共享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上): (功能(全局,工厂){
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"
}
}