stay hungry stay foolish

webpack的几种引用方式

a.js:

console.log('modA run');
var varA = 'modA'; //模块内部的变量在其他模块是获取不到的,全局作用域的变量可以放在 window 下
define(function(require){
	return 'modA';
});

b.js:

require('./a');
console.log('modB run');
module.exports = 'modB'; 

c.js:

console.log('modC run');
export default 'modC';

d.js:

console.log('modD run');
export var mod = 'modD';

main.js:

var a = require('./a'); //等价于 import c from './c'; //webpack做了兼容处理
import b from './b';	//b模块中也 require 了 a,但是a模块只会运行一次
var c = require('./c'); //如果 require es6模块,将会自动封装成一个对象
var d = require('./d'); //es6模块(没有使用default)
import modC from './c'; //标准 es6 写法

console.log('modA',a);
console.log('modB',b);
console.log('modC',c);
console.log('modD',d);
console.log('modC',modC);

运行结果: