Nodejs的模块化

2021-04-02  本文已影响0人  Lnevan

CommonJS模块规范

module.exports与exports

console.log(exports) //{}
console.log(module) //Module {……exports: {},parent: null……}
console.log(exports === module.exports) //true
//try.js
exports = {name: "Join"}

module.exports = {name: "Bob"}
//main.js
let name = require('./try.js')
console.log(name) //{ name: 'Bob' }

require加载文件规则

CommonJS引入与ES6的区别

//try.js
let counter = 1

let addCounter = () => {
  counter++
}

module.exports = {
  counter,
  addCounter
}
//main.js
let func = require('./try.js')

console.log(func.counter) //1
func.addCounter()
console.log(func.counter) //1
//try.js
export let counter = 1

export let addCounter = () => {
  counter++
}
//main.js
import {counter,addCounter} from './try.js'
console.log(counter) //1
addCounter()
console.log(counter) //2
// a.js
module.exports.a = 1;
var b = require('./b');
console.log(b);
module.exports.a = 2;

// b.js
module.exports.b = 11;
var a = require('./a');
console.log(a);
module.exports.b = 22;

//main.js
var a = require('./a');
console.log(a);

Node加载

{
   "type": "module"  // 开启 ES6 Module 模式
}
上一篇 下一篇

猜你喜欢

热点阅读