常见的标准如下: — 兼容
amd + cmd 只能在浏览器中使用
commonJs 只能在服务端使用(nodejs)
umd 浏览器 + 服务器
esm 目前vue框架使用的(通用,export & import, 目前最好)
(function (root, factory) {
if (typeof exports === 'object' && typeof module === 'object') // commonjs
module.exports = factory()
else if (typeof define === 'function' && define.amd) // amd、cmd
define([], factory)
else if (typeof exports === 'object') // commonjs
exports['xxxx'] = factory() // xxxx为抛出的自定义的函数名
else
root['xxxx'] = factory() // 全局对象, 浏览器中是 window
})(this, function() {
return { // 最终返回的是一个对象xxx: {add:x, xs:xxx}
add: function(left, right) {
return left + right;
}
}
})
// 使用方法
xxxx.add(1, 2)
可以在webpack配置中修改对象的名称
configureWebpack: {
resolve: {
alias: { // 创建import 或 require的别名,使模块引入更简单。直接放入全局,不用相对引入
'gxcaJs': resolve('src/utils/ggzy.js')
}
}
},