问题标签 [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 - AMD 模块能否/将在嵌入式脚本标签之间加载?
由于与问题无关的原因,我的同事需要加载一个使用通用模块定义模式的脚本。我们的环境通常会加载一个 AMD 工具,但出于更不相关的原因,我的同事需要脚本来定义全局而不是通过 AMD 注册模块。目前在他们的分支上签入的方法是这样的:
我的问题是:这是一个可怕的想法吗?浏览器从脚本标签加载脚本的方式是否有保证,这将确保在未定义定义和恢复定义之间除了加载基于 UMD 的脚本之外不会发生任何事情?我们有一个非常大、非常重的异步资产负载,主要基于 AMD 模块,所以我关心的是一个 AMD 模块试图在当前未定义定义的间歇状态下定义自己。
javascript - Browserify 独立 (UMD) 模块的测试覆盖率
我在以下 gulp 任务中使用browserify 独立选项来生成 UMD 模块:
独立选项使用以下代码包装库代码,以确保它可以作为 Node 模块、AMD 模块或 Global 加载:
我正在使用 istanbul 来尝试实现 100% 的测试覆盖率。我的问题是 UMD 代码片段的某些部分没有经过测试。例如,我没有使用 AMD,所以像下面这样的行永远不会执行:
或者
这使我无法实现 100% 的测试覆盖率。你知道我怎样才能解决这个问题吗?
谢谢!
typescript - TypeScript 类导出为具有严格模式的 UMD 模块
有没有办法可以将 TypeScript 类导出为启用严格模式的 UMD 模块?“gotcha”是严格模式部分。
我的代码看起来像:
该模块可以在其他地方使用,例如:
我希望严格模式适用于所有Foo
,但不适用于整个脚本,因为它可能与其他未知脚本连接。
定义文件也在生成中。
我可以在构建过程中将所有内容都包装在一个闭包中,但我首先要寻找一个预编译解决方案。
编辑:
为我的问题添加了更多详细信息,以防有人将来找到方法。
我最终只是添加了一个简单的编译后修复。UMD模块生成后。我替换这一行:
有了这条线:
现在模块内的所有内容都是严格的,而脚本本身则不是。
javascript - Webpack umd 库返回 Object.default
我正在用这些设置编写一个带有 webpack 的库:
我的库:
问题是,当我尝试在浏览器中加载 build/my_lib.js 时,访问 MyLib 的唯一方法是通过 MyLib.default ...
任何想法?
javascript - 使用 Webpack 创建的 UMD 会导致输出中出现重复的库
图书馆
我正在创建一个 React.js 库并尝试将其打包为 UMD 以进行分发。在库中,webpack.config.js
文件如下:
正确运行webpack
会在./lib/index.js
.
消费者
但是,当尝试在另一个项目中使用这个库时,Webpack 错误地解析了MyLib 中的require('react')
语句lib/index.js
,并两次包含了 React 库。
消费者的webpack.config.js
文件是:
消费者的入口点非常简单(src/index.js
):
webpack
在消费者中运行返回:
如果我react
在其中通过 npm安装,node_modules/my-lib
那么 webpack 将毫无错误地运行,但 React.js 将在最终输出中包含两次。检查构建的文件表明,当 Webpack 在其中遇到时require('react')
,node_modules/my-lib/lib/index.js
它会尝试node_modules
直接从本地包含一个新版本,而不是从src/index.js
.
我觉得我在这里遗漏了一些非常明显的东西,但我无法取得任何进展。
javascript - 构建一个 JavaScript 库,为什么要以这种方式使用 IIFE?
我注意到很多库使用下面的这种样式来定义他们的库。我还注意到第一个自调用函数与 Require.js 或 AMD 系统有关,它们总是将工厂作为参数,我将更多地研究 Require.js,一直到 Browserify。
为什么将主要代码传递到括号内的第一个自调用函数的末尾,这是一个闭包,还是只是一个匿名函数,我将深入研究两者。这样做有什么好处?看起来作者在闭包内部传递了 a string
、this
和 a callback
。
这会给我的库提供一种干净安全的方式来全球化下面这个示例中的主要对象Please
吗?
我正在尝试深入挖掘 JavaScript 并创建自己的小型 MVC 架构,我不想听到我很傻或以前做过,我想挑战自己并学习。
如果有任何用于创建 JavaScript 库甚至更好的 MVC 库的资源,我很想知道。
javascript - 默认导出为全局变量 Typescript 1.8 --module UMD
我正在编写一个导出单个文件的 NPM 模块。我已将--module
标志设置为umd
. 我想将此文件的默认导出公开为全局变量。
是否可以在 Typescript 1.8 中将 UMD 模块导出为全局变量?
browserify - 如何使用 browserify 独立选项
我正在尝试创建一个可以用作全局变量、amd 或 commonjs 模块的独立库。
但是在使用带有standalone
选项的browserify编译它之后,由于browserify错误,我无法将它作为编译库包含在下一个构建中
如何处理这个问题。
我使用的所有源代码都可以在这里找到:https ://github.com/paveltyavin/double-browserify
ruby-on-rails - 需要渲染为 UMD 模块 - rails-babel-transpiler gem
我正在使用官方 Babel 站点 Language API - ruby 中提到的 rails-babel-transpiler gem ,用于将 es6 代码转换为 es5。
我编译的方式,下面是erb文件
它被渲染为
上面的代码可以用UMD方式渲染吗?我在 babelrc 文件中使用了插件“transform-es2015-modules-umd”,但它没有被转换为 UMD 模块。帮我解决这个问题!谢谢