问题标签 [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.
typescript - Typescript 导入和 Webpack
我正在尝试使用我的 TypeScript 应用程序中的hellosign 嵌入模块,然后使用 Webpack 打包并作为网页的一部分运行。
我还导入了@types
typings。
问题是,如果我使用:
打字稿给我一个错误:
我也尝试过简单地使用:
这使我可以从我的代码中访问HelloSign
全局,但问题是在运行 webpack 之后,在浏览器中运行它时,HelloSign
找不到:
导入这个库的正确方法是什么?提供的打字有问题吗?
node.js - 打字稿错误在tsconfig.json中将模块更改为“umd”或“amd”时找不到模块'typescript-Collections'
我正在使用 VS17 企业版。如果我在module
我commonjs
的tsconfig.json
.
但是,一旦我将其更改为"umd"或"amd",我就会收到错误消息(请参见屏幕截图),因此Cannot find module 'typescript-collections'
这两个变量将是 type 。我还附上了我的.queue
queue1
any
tsconfig.json
任何帮助将不胜感激。
javascript - 为什么我的 Webpack 包不返回我的类?
我有一个类,每个类都在它自己的文件中,与 Webpack 捆绑在一起。我希望能够导入包并在 Node 和浏览器中使用它们。
我的 webpack 入口文件:
示例类:
网络包配置:
但是当我尝试使用它们时,我只得到一个空对象并且没有类的迹象。
我哪里出错了?
visual-studio-2015 - AMD RequireJS @types TypeScript 2 Visual Studio 2015 噩梦
我被分配了一项任务,将我们的 angularJs 项目更新为 TypeScript 2
我们目前使用 requirejs (AMD) 来填充库,然后使用
import 'angular';
import 'lodash';
据我所知,这是一个 ES6 模块加载语法。我们声明一个主应用程序模块并在其中导入库,然后在导入应用程序模块时
import 'Application';
这也是由 requirejs 填充的,当我们导入它时,我们会自动获取应用程序的所有导入库列表。
我实际上将项目成功更新为 TypeScript 2!!!
但是,当我尝试使用 @types 来包含 TypeScript 声明文件时,就会出现问题。
没有关于如何完成这项工作的完整参考!
****** 问题!******
当我尝试使用 @types/lodash 时,我在所有现有文件中都丢失了 _ (lodash) 的智能感知。
当我尝试
import * as _ from 'lodash';
然后我面临一个不同的错误:
Build:Module augmentation cannot introduce new names in the top level scope.
我的理解是 .d.ts 文件导出 UMD 模块。但是如何在我的 Visual Studio 2015 中引用 @types?
请帮忙!谢谢。
javascript - js - 闭包编译器和 UMD
我有一些带有这样的 UMD 模式的代码:
我想用带有ADVANCED_OPTIMIZATIONS
标志的 Google Closure Compiler 编译这段代码。我不允许更改为上面的代码。当我编译这段代码时,闭包编译器无法识别root.returnExports
等于window.returnExports
并将代码编译为:
这当然会引发错误,因为returnExports
(第 9 行)未定义。jQuery 函数$('body').text(...);
是在一个外部文件中声明的,所以这不是问题。
我看到关于 Closure Compiler 和 UMD 模式的另一个问题:Google 闭包编译器和 UMD 模式,但这对我没有帮助。
我如何告诉闭包编译器root.returnExports
等于window.returnExports
?
笔记:
我想重命名为or之returnExports
类的东西,而不是保留它的名字。a
b
typescript - 使用 webpack 导入 UMD 构建的模块会导致严重依赖错误
我正在尝试构建一个简单的文件,该文件依赖于使用 UMD 导出构建的库。
它编译得很好,但是 webpack 会吐出依赖错误:
哈希:85004e3e1bd3582666f5 版本:webpack 2.3.2 时间:959ms 资产大小块块名称 dist/bundle.js 61.8 kB 0 [emitted] main build/main.d.ts 0 bytes [emitted] [0] ./~/jsonc- parser/lib/main.js 40.1 kB {0} [内置] [1] ./~/jsonc-parser/lib 160 字节 {0} [内置] [2] ./~/path-browserify/index.js 6.18 kB {0} [内置] [3] ./~/process/browser.js 5.3 kB {0} [内置] [4] ./src/main.ts 200 字节 {0} [内置] [5] ./ ~/vscode-nls/lib 160 字节 {0} [可选] [内置] [6] ./~/vscode-nls/lib/main.js 5.46 kB {0} [内置]
./~/jsonc-parser/lib/main.js 3:24-31 中的警告 关键依赖项:require 函数的使用方式不能静态提取依赖项
./~/vscode-nls/lib/main.js 中的警告 118:23-44 关键依赖项:依赖项的请求是一个表达式
./~/vscode-nls/lib/main.js 中的错误找不到模块:错误:无法解析 '.../webpack-typescript-umd/node_modules/vscode-nls/lib' @ 中的 'fs'。 /~/vscode-nls/lib/main.js 7:9-22 @ ./~/jsonc-parser/lib/main.js @ ./src/main.ts
我想将我的js
转译文件保留为,commonjs
但我也想捆绑jsonc-parser
而不将其重新编译为commonjs
.
我在 github 上创建了一个 repo,显示了错误。希望这可以帮助你。
您可以简单npm install && npm run dist
地重现错误。
webpack - 模块不是装载机必须有正常或俯仰功能
我正在使用一个作为 umd 模块分发的库,我正在导入的文件之一中的代码如下所示
lib.js
现在当我在我的代码中使用这个 lib.js 并运行 webpack 时,它会抛出这个错误
错误:模块 'H:\Projects\abc\umd\app\utils\require-isdefined-plugin.js' 不是加载器(必须具有正常或俯仰功能)
我认为 webpack 将“../utils/require-isdefined-plugin”视为加载程序并抱怨。
我的问题是如何让 webpack 知道这不是加载程序并正常执行此文件或
还有其他方法可以使这项工作吗?
jquery - mousemove 事件导致网络错误
我有 angular 2 项目,我正在使用 jquery 代码:
为了隔离问题,“someFunction”是一个空函数;
当我将光标移到 #someId 元素上时,我得到了这些错误: 浏览器错误
我也尝试从角度引发事件,与 jquery 的问题相同;
platform-browser.umd.ts:934 发生了什么?
解决方案:
事件本身导致 angular zone.js 算法检查所有绑定。其中之一导致 iframe 源重新计算 url。
javascript - 在 webpack 中将库配置为外部库不适用于 UMD 作为 libraryTarget
我在过去两天尝试了这个,但我无法让它像预期的那样工作:我想构建我自己的 JavaScript 库并将其注册到一个已经存在的命名空间(“OCA” - 在这种特殊情况下)。正如您可能理解的那样,我不想被迫放弃现代方法,例如通过打字稿或模块进行类型安全。
因此,我使用webpack 2并libraryTarget: umd
在“OCA.Ocr”下注册输出(我的库名为“Ocr”)。这按预期工作,但是当涉及到我想使用的点时underscorejs,因为它将在应用程序中全局可用,该库也应该交付到,我无法让它工作。我遵循了 webpack 配置文档,它说externals配置选项应该是要走的路:
我按照指南的建议使用它,但它不起作用:
我app.ts
使用下划线库的文件(例如_.defer
方法,当然并不总是最好使用)看起来像这样:
我将它包含在应用程序中,并检查了 underscorejs 库是否在我的库被浏览器加载之前被加载,但控制台输出仍然显示:
TypeError: underscore_1.default 未定义
编译后的输出如下(也许这有点帮助):
有谁知道这是如何工作的以及我将要做什么?我完全迷路了,现在希望得到你的帮助。
顺便说一句:这对我也不起作用。
javascript - requireJS 优化器 - 将两个匿名模块组合成一个 combine.js 文件
我正在尝试使用RequireJS 优化器将两个 require amd 模块组合成一个 combine.js javascript 文件。
**此问题与此问题不同:Mismatched anonymous define() module where there is not a solution or detail of the questions,并且与reactJS文档有一些矛盾的建议。
模块1.js
模块2.js
推荐的良好做法
在 requireJS wiki 和其他来源中,作为一种好的做法,他们明确建议不要为每个模块设置名称,而是将其保持匿名,没有 id: https ://github.com/requirejs/requirejs/wiki/Updating-existing -图书馆#anon
“通常你不应该注册一个命名模块,而是注册为一个匿名模块...... ”
RequireJS 优化器 - 将模块组合在一个 js 文件中
[构建.js]
[定义.js]
[弹出 requireJS 优化器]
RequireJS 优化器 - 输出 - combine.js
尝试加载 combine.js 文件和模块
[索引.html]
问题
加载combined.js 文件时,我总是得到相同的错误,除非我使用代码为上面的每个模块指定一个ID 名称:define('module1', factory); ...
错误:
附加信息
- 当前,所有文件都使用具有该 UMD 模式的 requireJS 完美加载。但是我不知道是否应该更改某些内容。
- definition.js 和 combined.js 显式加载模块,每个模块都有定义的id 名称。问题可能就在这里。
问题
- 如何将这些匿名模块组合到一个 combine.js 文件中,使用 requireJS 加载该文件,然后获取模块?
- 代码中可能有问题吗?
- 在 requireJS Optimizer 文档中,他们说他们支持加载匿名模块,但我一直无法做到。是否真的可以在不为模块分配 id 名称的情况下做到这一点?
我完全绝望地试图解决它,并且已经查看了许多资源,但找不到明确的答案。非常感谢