如何在共享JavaScriptAMD模块时选择依赖项名称
How to choose the dependencies names when sharing a JavaScript AMD module?
我正在编写一个依赖于HumanizeDuration.js的工具(可以是任何其他依赖项)。在main.js
:中使用RequireJS
require.config({
paths: {
"humanizeDuration": "./path/to/humanize-duration" /* .js */,
"myTool": "./path/to/my-tool" /* .js */
}
// ...
});
在my-tool.js
:中
define(["humanizeDuration"], function (humanizeDuration) {
// ...
}});
我想分享我的工具(例如在GitHub上):
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(["humanizeDuration"], factory);
} else if (typeof exports === "object") {
module.exports = factory(require("humanizeDuration"));
} else {
global.MyTool = factory(global.humanizeDuration);
}
}(this, function (humanizeDuration) {
// ...
}));
问题是:我应该为依赖项选择哪个名称?由于这取决于开发人员如何配置他们的main.js
(用于RequireJS),我错了吗?
在这里,我选择了humanizeDuration
,所以我可以告诉开发人员使用这个名称,但如果他们使用另一个选择humanize-duration
的工具呢?
如果您知道有一个最常用的名称将HumanizeDuration.js
称为AMD模块,请使用该名称,但如果没有通用名称或无法确定名称,则可以使用humanizeDuration
。请确保将其记录下来,以便用户知道预期内容。然后,如果因为您的工具需要humanizeDuration
而另一个工具想要humanize-duration
而出现问题,则您的工具的用户可以使用map
:
map: {
'*': {
"humanize-duration": "humanizeDuration"
}
}
这条消息会告诉RequireJS,需要'*'
humanize-duration
的地方,请改为加载模块humanizeDuration
。显然,在这种情况下,humanizeDuration
就是paths
中的内容。如果CCD_ 16在CCD_。
相关文章:
- 依赖<选择>HTML和JavaScript菜单
- 在<p>标签依赖于<选择>标签,javascript
- Angularjs-uib日期选择器中的customClass依赖于promise
- 如何根据电子邮件模板名称的选择创建依赖的同义词文本区域
- 余烬 2 选择依赖项
- 显示依赖于下拉框选择的表单字段
- 使用选定和选择2插件的依赖多选下拉列表
- 如何创建一组从属选择列表,其中连续列表依赖于前面列表选项的选择
- 使用 html 选择和日期的依赖日期选择器有意义
- 离子选择不会更新依赖于作用域变量的功能
- javascript 如何从一个数组填充相互依赖的<选择>
- 与 json 和选择的依赖关系
- 如何选择具有依赖于 javascript 变量的 id 的行
- 使用JQuery设置文档就绪时的依赖选择的值
- PHP和MySQL的多依赖选择框
- 使用JavaScript为依赖选择RESTful编写代码
- 通过Angular从json文件中填充依赖选择
- 在PHP中使用Jquery和Ajax的动态依赖选择框
- 选择彼此依赖(选择年龄)
- 当表单提交不被接受时,依赖选择器就会出错