webpack+qiniu+plupload 打包过程当中的问题记录及解决办法

最近项目告一段落,准备将手里的requirejs项目改形成webpack,也就是多页面的打包,磕磕绊绊走过来,jQuery的导入,jQuery插件的封装导入,css的归类导入,也都解决得还算顺利。只是今天碰到的上传功能的打包,着实废了一番心思。css

项目中有一个上传图片的功能,用的是qiniu+plupload。在原项目中,导入了qiniu.js,moxie.js以及plupload.full.min.js。webpack

在webpack项目中,我也一样导入了这三个js,发现报错: Qiniu.uploader is not a function。因而上npm上查了下,发现这三个js在npm都有包,因而放弃导入本地的,换成npm安装的包,结果仍然不行。web

最后发现,qiniu.js被require的实际上是一个空对象,查看源码后发现:npm

clipboard.png

最终的Qiniu对象并无用commonjs的标准抛出,因而添加requirejs

clipboard.png
此时继续报错: mOxie is not defined。查看源码后发现,qiniu.js中虽然访问了mOxie这个对象,但并无申明。因此mOxie这个对象一定时挂在全局对象上的,可是commjs中没有全局概念,因而考虑生成一个本地变量:ui

clipboard.png
须要注意,moxie.js不要使用npm上的版本,npm上的没有mOxie这个变量。spa

此时程序已能正常运行,下面是个人部分代码插件

clipboard.png

相关文章
相关标签/搜索