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

相關文章
相關標籤/搜索