模块化开发js库的常规模式是怎样的?
比如这样一段代码
var map = {
zoom: 8,
layer: {
getLayer: function () {
//
}
}
}
现在希望通过模块化的方法,先声明一个map全局对象,再在各模块中扩展属性和方法,最终生成一个umd或iife的js文件,如下
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global.ygmap = factory());
}(this, (function () { 'use strict';
var map = {};
map.zoom = 8;
map.layer.getLayer = function () {
//
}
return map;
})));
如果你有
ES6
的环境的话你可以使用export default map
或者export {map}
来导出这个map。然后在其他文件中用
import
来引入这个map。如果你想用
AMD
方式的模块化的话,建议你去看一下require.js
相关的文档