esm(ECMAScript Modules) 和 cjs(CommonJS) 没有语法区别只有模块导入导出的差异。
nodejs 创立 require ,浏览器是
考虑nodejs 浏览器等历史因素,成因复杂,没有必要较真,掌握用法就行。
esm 导出:
export const a = 0
export default 0
//export const default = 0
cjs 导出:
module.exports.a = 0
module.exports.default = 0
esm 导入:
import a, { b } from "m" //静态导出
//import { default as a, b } from "m"
const {default:myM} =await import('m') //动态载入
cjs 导入:
const { default: a, b } = require("m")
esm 导入整个模块:
import * as m from "m"
cjs 导入整个模块:
const m = require("m")