最近寫完一個基於sao的模板再把以前寫的一些代碼弄到github上,在項目中使用時遇到須要兼容IE的狀況才發現webpack在加載文件時存在必定策略,下面來簡單說一下。javascript
先看一下這個例子的文件和pkg的設置java
dist/ vpin.esm.js #ES2015格式 vpin.min.js #UMD格式 vpin.js #Commonjs格式
package.js
文件設置以下react
{ "main": "vpin.js", "jsnext:main": "vpin.esm.js", "module": "vpin.esm.js", "browser": "vpin.min.js" }
在項目中用webpack加載時這個例子時,會優先加載browser設置的文件,而後纔是module或者jsnext:main,最後纔是main。webpack
不知道爲什麼用rollup生成的UMD在webpack引入後沒法命中
exports
關鍵字,致使引入空內容。
因爲上面問題致使我困惑好久,後來根據webpack加載策略,把browser
設置去掉後加載esm方式的文件就把問題解決了。git
若是你也有把項目發佈至npm,那麼請留意一下package.json
相關設置,能避免沒必要要的麻煩。github