在Webpack中需要第三方RequireJS模块
Require third party RequireJS modules with Webpack
我正在开发一个需要使用AMD模块的ReadiumJS库的应用程序。该应用程序本身是用es6/webpack和babel编写的。我已经让供应商包正常工作,并且它正在拉入构建的Readium文件,但是当我试图要求任何模块时,Webpack说它无法解决它们。有人在Webpack和RequireJS中这样做过吗?这里有一些信息可能会有所帮助-不知道还能包括什么,因为这是我第一次真正使用Webpack.
<文件夹结构/strong>
/readium-src
/readium-js
/ *** all readium-specific files and build output (have to pull down repo and build locally)
/node_modules
/src
/app.js -> main entry for my app
/webpack.config.babel.js
<webpack.config.js条目/strong>
entry: {
vendorJs: [
'jquery',
'angular',
'../readium-src/readium-js/build-output/_single-bundle/readium-js_all.js',
'bootstrap/js/alert.js' //bootstrap js example
],
appJs: './app.js'
}
尝试在app.js中使用
var readiumSharedGlobals = require('readium_shared_js/globals');
我从来没有真正使用过RequireJS,所以我真的很难理解如何在webpack中使用这种类型的模块以及其他类型的模块。任何帮助都非常感谢:)
更新strong>
如果我把app.js改成这样:
window.rqReadium = require('../readium-src/readium-js/build-output/_single-bundle/readium-js_all.js');
然后它似乎试图加载所有的模块,但我得到一个奇怪的错误:
Uncaught Error: No IPv6
在这一点上,我不确定
- 我应该像那样要求整个路径吗?
- 这个错误是来自webpack, requirements还是Readium?试着调试,但找不到任何有用的东西…
更新8/12/2016
我认为这与Readium所依赖的库的问题有关:https://github.com/medialize/URI.js/issues/118
然而,我仍然不清楚如何正确导入AMD模块与webpack。我的意思是:
假设我在 moneyservice . amp .js中定义了一个amd模块,如下所示:
define('myMoneyService', ['jquery'], function($) {
//contrived simple example...
return function getDollaz() { console.log('$$$'); }
});
然后,在兄弟文件app.js中,我想拉入该文件。
//this works
var getDollaz = require('./moneyService.amd.js');
//this works
require(['./moneyService.amd.js'], function(getDollaz) { getDollaz(); }
//this does not
require(['myMoneyService' /*require by its ID vs file name*/], function(getDollaz) {
getDollaz();
}
所以,如果我们不能要求命名模块,我们如何使用第三方lib的dist文件,它将所有模块捆绑到一个文件中?
好了,有一个电子ePub阅读器的repo使用Readium,它使用webpack: https://github.com/clebeaupin/readium-electron这显示了一个用webpack处理拉入RequireJS模块的好方法。
我发现一个超级棒的事情是你可以指定output.library
和output.libraryTarget
, webpack将从一个模块格式转到另一个…该死的!所以,我可以导入requirejs模块,分别将输出库和libraryTarget设置为' reader -js'和'commonjs2',然后在我的应用程序代码中,我可以做import Readium from 'readium-js';
- 以可优化的方式使用requirejs加载模板
- RequireJS向模块传递配置总是返回undefined
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 如何检测第三方广告服务器请求
- 将下载链接从web浏览器传递给第三方应用程序
- 在iOS和Android上使用React native时,我还能使用本机第三方lirbraries吗
- PhoneGap/带有RequireJS's的文本插件
- 如何正确地将参数传递给RequireJS回调函数
- 使用jquery cookie的第三方cookie
- 在requirejs中共享实例化对象
- markrwithlabel.js(第三方)原始文件链接断开
- 开发第三方小部件-Angular vs jQuery vs普通的旧JS
- What does requirejs.config() do?
- 将javascript应用程序迁移到使用AMD的提示(例如requirejs)
- 处理第三方库发送的ajax请求的开始和结束事件
- 在浏览器中检测本机或第三方PDF插件
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 使用RequireJS时,如何从CDN加载第三方JavaScript
- 在Webpack中需要第三方RequireJS模块
- 向requireJS添加第三方jQuery插件的最佳实践