ES Module 和 Commonjs 的區別


1. 語法

1.1 ES Module

導出:export / export default
導入: import * from 'module'

1.2 Commonjs

導出:module.exports
導入:const module = require('module')

 

2. 特性

2.1 ES Module

靜態引入、編譯時引入(支持Tree shaking)

1 // lib.mjs
2 export let a = 1
3 export const b = 2
4 export function aPlus1 () {
5    return a++  
6 }
lib.mjs
// index.mjs
import { a, aPlus1 } from './lib.mjs'

console.log(a) // 1

aPlus1()

console.log(a) // 2
// package.json - 新版本node支持執行ES Mdolue,不過要加上這個配置,且文件后綴要為mjs
{
 "type": "module"
}
package.json

 

2.2 Commonjs

動態引入、執行時引入

// lib.js
let a = 1
let b = 2
function aPlus1 () {
  return a++
}
module.exports = {
 a, b, aPlus1
}
lib.js
// index.js
let { a, aPlus1 } = require ('./lib.js')

console.log(a) // 1

aPlus1()

console.log(a) // 1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM