利用编译工具

  • webpack
  • rollup
  • esbuild
  • swc

    利用第三方库

  • standard-things/esm

  • egoist/esbuild-register
  • babel-node
  • esno

    Native Nodejs

  • package.json 中填写 type: “modules”,表明模块的类型

  • 将文件名改成.mjs,标明该文件是 esm 代码。
  • 区别:
    • 前者是包的作用域,以 package 为维度。后者则是以文件为维度,不受限于包的作用域