原由
近来写完一个基于sao的模板再把之前写的一些代码弄到github上,在项目中使用时碰到须要兼容IE的状况才发明webpack在加载文件时存在肯定战略,下面来简单说一下。
例子
先看一下这个例子的文件和pkg的设置
dist/
vpin.esm.js #ES2015花样
vpin.min.js #UMD花样
vpin.js #Commonjs花样
package.js
文件设置以下
{
"main": "vpin.js",
"jsnext:main": "vpin.esm.js",
"module": "vpin.esm.js",
"browser": "vpin.min.js"
}
在项目顶用webpack加载时这个例子时,会优先加载browser设置的文件,然后才是module或许jsnext:main,末了才是main。
不知道为何用rollup天生的UMD在webpack引入后没法掷中
exports
关键字,致使引入空内容。
因为上面题目致使我疑心良久,厥后依据webpack加载战略,把browser
设置去掉后加载esm体式格局的文件就把题目解决了。
假如你也有把项目宣布至npm,那末请注意一下package.json
相干设置,能防止不必要的贫苦。
参考资料
- JavaScript Module Systems Showdown: CommonJS vs AMD vs ES2015 剖析三种JS Module的设想起因
- Webpack 4 不完全迁徙指北 说起webpack模块范例相干内容
- webpack 4 compatibility issue