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

Node.js 16原生ES Module环境下如何实现模块根路径导入?

Node.js 16原生ESM根路径导入实现方案

Node.js 16原生ES Module生态有两种无需编译打包工具的原生实现方案,具体如下:

方案1:使用package.json的imports字段(稳定版,生产环境推荐)

imports是Node.js ESM内置的模块路径映射能力,从16.0.0版本开始就已稳定支持,无需开启任何实验性flag。
配置步骤:

  1. 在项目根目录的package.json文件中新增imports配置项:
{
  "type": "module",
  "imports": {
    "~/*": "./*"
  }
}
  1. 配置完成后,你就可以在任意层级的js文件中直接使用import c from '~/b.js'的写法导入根目录下的b.js模块,无需写相对路径。

注意事项:

  • 你可以根据需求自定义映射前缀,比如把@/*映射到./src/*来适配不同的项目结构
  • imports字段仅支持项目内部模块的路径映射,无法映射外部npm依赖

方案2:使用Import Maps(实验性特性)

Node.js 16.12.0及以上版本实验性支持了浏览器标准的Import Maps规范,也可以实现路径映射需求。
配置步骤:

  1. 在项目根目录新建import-map.json文件,写入以下内容:
{
  "imports": {
    "~/": "./"
  }
}
  1. 启动Node.js时加上对应实验性flag,指定映射文件路径即可:
node --experimental-import-maps --import-map=./import-map.json a.js

注意事项:

  • 该特性在Node.js 16中属于实验性功能,生产环境使用前需要提前评估稳定性,Node.js 20及以上版本已将该特性转正
  • 映射规则完全对齐浏览器端Import Maps标准,适合同时需要适配浏览器端ESM的项目使用

内容的提问来源于stack exchange,提问作者Đậu Văn Đăng Khoa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 13:36:05