如何在没有任何额外依赖的情况下在浏览器中使用 UMD

2023-12-22

假设我有一个像这样的UMD模块(保存在'js/mymodule.js'):

(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ?     factory(exports) :
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
  (factory((global.mymodule = global.mymodule || {})));
}(this, function (exports) { 'use strict';
    function myFunction() {
        console.log('hello world');
    }
}));

我如何在这样的 HTML 文件中使用这个模块? (没有 requirejs、commonjs、systemjs 等......)

<!doctype html>
<html>
<head>
    <title>Using MyModule</title>
    <script src="js/mymodule.js"></script>
</head>
<body>
<script>
/* HOW TO USE myFunction from mymodule.js ??? */
</script>
</body>
</html>

非常感谢您的帮助。


好的,所以你正在一个没有 RequireJS、CommonJS、SystemJS 等的环境中运行。

关键行是factory((global.mymodule = global.mymodule || {}))这做了一些事情:

  1. If global.mymoduletrue,那么它相当于

    global.mymodule = global.mymodule // A noop.
    factory(global.mymodule)
    
  2. 否则它相当于:

    global.mymodule = {}
    factory(global.mymodule)
    

工厂内部:您的工厂应该通过分配来导出您想要从模块中导出的内容exports。所以你会导出myFunction通过做exports.myFunction = myFunction.

工厂外:在室外,导出的值将打开mymodule被出口到全球空间。当你想使用时myFunction,例如,你做mymodule.myFunction(...).

万一不清楚。代码中的工厂是以以下开头的函数function (exports) {,你正确放置的地方myFunction.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有任何额外依赖的情况下在浏览器中使用 UMD 的相关文章

  • 输入文本中固定下划线

    我试图修复所有输入文本类型中的下划线 但没有成功 Example My code input width 100 background color fcfcfc border 0 padding 10px div class col lg
  • 单击时更改 CSS 属性

    我试图在单击另一个元素时更改一个元素的 CSS 我进行了很多搜索 但没有任何效果是完美的 目前我正在使用下面的代码 但它不起作用 谁能告诉我我错过了什么 div hello world div img src zoom png functi
  • Javascript正则表达式单引号

    我的正则表达式是 var re a z A Z 1 15 我想允许这样 单引号 我怎样才能做到这一点 例如 您可以使用以下正则表达式来允许类似的字符串abcd dfgh A Za z A Za z
  • 如何测试聊天网络应用程序

    我正在开发chat应用程序 在服务器上使用 node js socket io 模块 在客户端上使用 javascript 随着它变得越来越复杂 我厌倦了通过跨浏览器单击来测试不同的使用场景 现在我使用不同的浏览器来分离cookie 因此
  • SVG 用事件触发动画

    如何通过 javascript 使用任意事件触发 svg 动画元素开始动画 我在想象类似的事情begin mySpecialEvent 然后我可以发送mySpecialEvent并且动画将开始 如果已经播放则再次开始 这是一篇涵盖您需要的文
  • JQuery:如何仅在完成调整大小后调用 RESIZE 事件?

    浏览器窗口大小调整完毕后 如何调用函数 我正在尝试这样做 但遇到了问题 我正在使用 JQuery Resize 事件函数 window resize function how to call only once the browser ha
  • 在 JS 中动态创建函数

    我正在为 JS 游戏创建 AI 引擎 它是由有限状态机组成的 我正在从 XML 加载状态数及其变量值 我还想加载该行为 并且由于我没有时间创建脚本语言 所以我认为在外部文件 XML 节点内 上 插入 JS 代码并在要求 类似的东西
  • Storybook w/react-router - 你不应该在 之外使用

    尽管有 Sensei 谷歌搜索技能 但我很难找到问题的解决方案 尽管我的应用程序与react router工作没有任何问题Storybook抛出错误 不变失败 你不应该在之外使用 Error Invariant failed You sho
  • Open Layers 3 根据矢量图层的范围将地图居中?

    我想根据矢量图层特征 点 来定位地图的中心和缩放级别 我有一个 geojson 文件正在填充我的地图 var vectorSource new ol source Vector url assets js data geojson form
  • REGEX (javascript) - 允许字母数字字符和不在第一个位置的特殊字符

    我想设计一个正则表达式 允许使用字母数字字符以及其他字符 只要它们不在第一个位置即可 例子 VALID Test VALID Hello123 VALID 456 Hi VALID 456 789 VALID Hi 777 VALID 33
  • 选择移动 Web HTML5 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Javascript在底部,函数调用在主体?

    只是一个简单的问题 我遵循将所有 Javascript 文件保留在结束正文之前的文档底部的做法 但是我想在主体中调用一个函数 该函数会出现在 JS include 之前 因此失败 有没有办法让这个功能在不将文件移动到头部的情况下工作 Che
  • 禁用单一样式的 CSS 转换?

    为单个样式启用 CSS 过渡非常容易 但是是否可以为单个样式禁用它们 单一样式过渡的常用方法是 div transition opacity 0 5s 但我想做的是设置一个全局转换 然后为单个属性禁用它 也许是这样的 div transit
  • 异步等待图像加载事件触发器[重复]

    这个问题在这里已经有答案了 我有一个奇怪的想法 我无法思考 const load url gt return new Promise resolve gt const img new Image img onload gt resolve
  • Javascript 与 Python 关于 Python 'map()' 函数的比较

    Python中有一个函数叫做map这可以让你去 map someFunction x y z 并继续应用该功能的列表 是否有与此功能等效的 JavaScript 我现在刚刚学习Python 虽然我被告知javascript是函数式语言 但我
  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • React 渲染中的不变违规或 React 中迭代和返回的正确方法

    我在 React 渲染中遇到了持续存在的问题 这段代码 jsx React DOM var AnswerRows React createClass componentDidMount function render function th
  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 如何使用 axios / jest 测试失败的请求

    我创建了一个非常小的应用程序 如果您传递硬币和数量 它可以计算为某些加密货币支付的总价格 我想测试错误 但我总是收到 收到的承诺已解决而不是被拒绝 我相信这是因为如果 url 错误 axios 仍然会解决承诺 我遇到的第二个问题是 我尝试测

随机推荐