Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用网页包导入requirejs amd模块_Javascript_Webpack_Requirejs_Amd - Fatal编程技术网

Javascript 使用网页包导入requirejs amd模块

Javascript 使用网页包导入requirejs amd模块,javascript,webpack,requirejs,amd,Javascript,Webpack,Requirejs,Amd,我正在使用它,并且它预先内置在RequireJS/AMD语法中。包括来自CDN的文件,您可以像require(['converse'],function(converse){/*..*/})一样使用它。如何才能将此与Web包一起使用?我想将converse.js与我的网页包输出捆绑在一起 我把文件放在磁盘上,想像这样导入它 import converse from './converse.js'; converse.initialize({ .. }); Webpack拾取文件并将其正确绑定,

我正在使用它,并且它预先内置在RequireJS/AMD语法中。包括来自CDN的文件,您可以像
require(['converse'],function(converse){/*..*/})
一样使用它。如何才能将此与Web包一起使用?我想将converse.js与我的网页包输出捆绑在一起

我把文件放在磁盘上,想像这样导入它

import converse from './converse.js';
converse.initialize({ .. });

Webpack拾取文件并将其正确绑定,尽管它还不可用,因为它抛出“初始化不是函数”。我遗漏了什么?

我怀疑他们包的构建方式与Webpack在有限上下文中评估模块的方式不匹配

从开始,通过NPM获取构建的AMD模块(无依赖项)应该可以通过Webpack进行解析,它将使您能够提供最新版本,以避免最终输出中出现重复


如果所有其他操作都失败,那么使用将在全局上下文中评估脚本,您将获得与按照其使用指南从CDN引用脚本相同的体验,只是不要忘记为您的linter配置全局脚本。

尝试运行
console.log(converse)
。它打印什么?为什么不使用npm版本@安德雷说,因为它不是npm上的一个模块,它正在构建并发布。npm基本上是“托管”应用程序。老实说,我不知道为什么它会出现在npm上。@Frxstrem一些“Jed”对象。使用问题中的第一个代码示例,我可以访问一系列内容,包括初始化。如果我运行上述命令,我会得到“initialize is not a function”,因此我使用的是脚本加载器
import converse from'script loader/node_modules/converse.js/dist/converse.js'
然后使用类似于
require(['converse'],converse=>{..}
的模块,然后webpack抱怨找不到模块“converse”.你知道阻止webpack解析require语句的方法吗?我找到了。在我的webpack配置中,我使用
externals:{'converse':'converse}将converse列为外部dep
。虽然它给了我一个
1.build.js
文件,其中只包含
module.exports=converse;
。如果我可以将整个库完美地放在这个文件中,那么它会异步加载非常适合我的用例的库。这是我的下一步!@biten
脚本加载器
应该可以让你达到b因为它基本上只是将整个脚本作为一个字符串写入块中;请确保您使用的是converse.jsye的缩小源。我明白了。因此,脚本加载程序将库作为字符串包含。虽然将converse列为外部,但webpack为我提供了一个多余的文件。您知道有没有办法告诉WebPCk/script loader将库转储到生成的额外文件中?以便稍后异步加载库。我似乎无法解决这个问题,idk,如果可能的话。我最终使用
script loader
以逆向方式加载,然后告诉webpack它是一个外部的,并且可以正常工作。所以接受你的答案,因为这有助于我得到答案E