首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack动态加载PapaParse

webpack动态加载PapaParse
EN

Stack Overflow用户
提问于 2015-02-17 12:23:06
回答 1查看 2.9K关注 0票数 4

我使用PapaParse从文件输入加载csv文件。

目前,我有一个使用脚本标记加载PapaParse的工作版本:

代码语言:javascript
复制
<script type="text/javascript" src="papaparse.js" ></script>

并处理更改事件:

代码语言:javascript
复制
Papa.parse(event.target.files[0], {
  complete: function(results) {
  ...
  }
}

现在我想使用webpack来捆绑我的js,并且我希望在需要的时候动态地加载PapaParse,而不是每次都加载到全局名称空间中。就像这样:

代码语言:javascript
复制
require("./papaparse.js").Papa.parse(event.target.files[0], {
  complete: function(results) {
  ...
  }
}

不幸的是,这使我在Uncaught ReferenceError: Papa is not defined库中出现了来自这条线的错误PapaParse:

代码语言:javascript
复制
if (!config.chunkSize)
            config.chunkSize = Papa.LocalChunkSize;

有什么办法让这件事成功吗?

编辑

我对requirejs / webpack是完全陌生的,所以我不确定这是否是解决这个问题的正确方法,但是我通过使用下面的shim配置成功地完成了这个工作(不幸的是我仍然污染了窗口名称空间)

代码语言:javascript
复制
require("imports?this=>window!exports?global.Papa!./papaparse.js").parse(event.target.files[0], {
  complete: function(results) {
  ...
  }
}

据我所知,第一个指令(imports?this=>window)使用导入加载器将参数设置为窗口对象(相对于空对象)。这使得PapaParse中对global.documentglobal.postMessage()的调用工作(并且似乎也对Papa进行了不限定的调用--即没有以global.Papa为前缀的调用)。第二个指令(exports?global.Papa)意味着Papa对象作为require返回的对象导出。

我会感兴趣的,如果有人有经验的webpack可以建议,这是否是正确的方式来处理这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-05 23:09:22

PapaParse现在应该和此承诺的webpack一起工作。另见PR172

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28561396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档