Node.js 如何处理 ES6 模块

来源 | http://www.ruanyifeng.com/blog/2020/08/how-nodejs-use-es6-module.html

1、两种模块的差异
2、Node.js 的区分
{"type": "module"}
# 解释成 ES6 模块$ node my-app.js
3、CommonJS 模块加载 ES6 模块
(async () => {await import('./my-app.mjs');})();
4、ES6 模块加载 CommonJS 模块
// 正确import packageMain from 'commonjs-package';// 报错import { method } from 'commonjs-package';
import packageMain from 'commonjs-package';const { method } = packageMain;
5、同时支持两种格式的模块
import cjsModule from '../index.js';export const foo = cjsModule.foo;
"exports":{"require": "./index.js","import": "./esm/wrapper.js"}

评论
