You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中能否使用ESM导入语法直接引入CommonJS模块?

Node.js中能否使用ESM导入语法直接引入CommonJS模块?

当然可以!现在Node.js已经原生支持在ESM模块环境里直接用import语法引入CommonJS模块了,完全不需要额外的转译工具就能搞定~

举个例子,假设你有一个CommonJS模块commonjsmodule,它的导出代码是这样的:

exports.add = function() { /* 你的函数逻辑 */ }

只要你的项目处于ESM环境中(比如package.json里配置了"type": "module",或者你的导入文件后缀是.mjs),就可以直接用ESM的解构导入语法引入它:

import { add } from "commonjsmodule";

除此之外,你也可以用默认导入的方式,把整个CommonJS模块的导出对象拿过来:

import commonjsModule from "commonjsmodule";
// 此时 commonjsModule.add 就是你要的方法

你提到的视频里演示的package.json中的type字段,就是用来设置项目默认模块系统的关键配置:

  • 当type设为"module"时,项目里的.js文件会被默认当作ESM模块处理
  • 如果不设置type或者设为"commonjs",.js文件默认是CommonJS模块,但.mjs文件依然会被识别为ESM

所以视频里能在ESM的app文件中同时导入CommonJS和ESM模块,完全是Node.js原生支持的模块互操作能力,不需要额外工具加持——这也是Node.js在模块系统兼容上做的优化,让两种模块系统能平滑协作。

备注:内容来源于stack exchange,提问作者Ole

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 20:13:13