问题标签 [umd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 如何使用 UMD 只定义一个对象构造函数?
我正在定义一个具有 UMD 样式的模块,该样式定义了一个可以在 CommonJS、AMD 和浏览器全局变量中使用的模块,如下所示:
如果我想将属性附加到导出的对象,这非常有用,但是如果我只想从此定义中返回一个构造函数并让所有三个系统都能够加载这个模块并直接使用返回的函数,而不是必须返回一个对象文字并将构造函数作为文字的属性访问?
javascript - 使用没有导出的 UMD 来简单地增加依赖是否合理?
我正在创建我的第一个用于开源分发的 AngularJS 模块。我想以一种易于其他人消费的方式包装它。
UMD 项目提供了一种用于导出与 AMD、CommonJS(或至少是 Node)和浏览器全局兼容的 JavaScript 模块的模式:
但是,由于 AngularJS 有自己的内部模块系统,注册模块只需调用angular
对象上的方法即可,即angular.module()
. 因此,UMD 模块不需要导出任何东西;它只需要要求并采取行动angular
。就前面的示例而言,我认为这看起来像这样:
或者,具体到我的情况:
这没什么大不了的,还是违背了UMD的精神?我问是因为我找不到任何不导出任何东西的 UMD 模式。
jquery - 如何使用requirejs加载jQuery插件intlTelInput?
有问题的插件是https://github.com/Bluefieldscom/intl-tel-input。所有脚本标签都被requirejs
正确插入,但我仍然无法使用插件intlTelInput
。
我错过了什么?
javascript - 避免使用 webpack + handlebars loader 捆绑 lib 依赖项
我正在使用车把模板编写一个库,我想使用 Webpack 来捆绑它。我正在使用把手加载器,以便我可以要求和预编译模板。
但是,我不希望把手(也不是把手/运行时)包含在我编译的库中,因此,我想将它们设置为外部。
这是我的配置文件:
不幸的是,它不起作用,并且车把加载器仍然使车把/运行时被捆绑...
我相信这是因为我不需要直接使用把手/运行时,而是在加载器添加的代码中需要它。
有没有办法将其标记为外部?
编辑:我知道我需要把手/运行时来编译我的模板。但是当我正在构建一个库时,我希望它由库的用户提供而不是被包含在内。这样,如果我的用户也在使用 Handlebars,则库不会加载两次。我认为图书馆避免捆绑任何依赖项是一种很好的做法(在我的拙见中,我们经常看到这种情况)。
javascript - JQuery 库模块导出
我试图了解 jQuery 是如何设置自己的。
一开始 jQuery 会自动调用一个函数,该函数会导出一个模块。
设置如何工作?
这里有一些更详细的子问题可能会回答更一般的问题:
- 递归调用
function(w)
at 有什么用module.exports
? noGlobal
变量有什么用?factory
实际设置在哪里,它的类型是什么?- 为什么
factory
参数可以用一个参数调用,也可以用两个参数调用? global
论证应该包含什么?(我希望有像 c++ 这样的类型......)
browserify - browserify 如何捆绑一个通用模块
我知道 browserify 可以通过转换来使用 UMD 模块,但是当我想使用 browserify 构建一个库时,我该如何构建一个 UMD 模块?我可以使用任何转换吗?
javascript - 通用模块定义——写作风格
起初我花了很长时间才理解这种模式,我认为这主要是因为它的编写方式:
这不和这个完全一样吗?
现在有一个 var 语句,但我发现这更容易阅读。我在这里错过了什么吗?是否有充分的理由使用第一种方法?
node.js - UMD javascript 模块,也可以在严格模式下工作
我无法重写它以在“严格”模式下工作。由于未明确定义“this”,因此我在编译时遇到 jshint 错误。我在想我的大脑只是不够抽象地思考,无法找到创造性的解决方案。任何帮助,将不胜感激。改编自通用模块定义 Github 存储库的代码:https ://github.com/umdjs/umd/blob/master/returnExports.js
javascript - UMD 样式子模块
是否可以以 UMD 风格的方式单独创建子模块?说我有这个:
在单独的文件中构建 thing.sub 对象的最佳方法是什么?我想通过这种方式分离模块来保持我的开发环境清洁......
javascript - Javascript UMD - 根,工厂在哪里/如何定义?
在如下所示的简单 UMD 设置中,在哪里/如何定义root
和factory
定义?
我参加 UMD 聚会迟到了,所以如果这是一个愚蠢的问题,请原谅我......但是如果我运行上面的代码,我看到root
返回窗口对象,并factory
返回一个函数。那么第一个参数(在这种情况下是根)总是定义为窗口对象吗?第二个呢?他们是否实现了相同的跨浏览器?我正在高低搜索规范或参考来支持它,但找不到...有很多关于 UMD 奇迹的博客文章,但我找不到任何关于它如何神奇地工作的解释.
有人对它的工作原理或原因有一个简单的解释吗?