JavaScript模块化

1.commonjs

导入:

var math = require('math');

math.add(2,3); // 5

导出:

module.exports={}

应用会停止并等待加载

2.AMD

AMD是"Asynchronous Module Definition"的缩写

它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

require([module], callback);

require(['math'], function (math) {

    math.add(2, 3);

  });

有两个Javascript库实现了AMD规范:require.jscurl.js

定义模块:

define(id?,dependency?,factory);

以上来自http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

3.es6的module

import { stat, exists, readFile } from 'fs';
export {firstName, lastName, year};

参考:http://es6.ruanyifeng.com/#docs/module
原文地址:https://www.cnblogs.com/zqiong/p/6207804.html