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

Node.js使用import语法时如何配置路径别名

解决方案

方案1:使用Node.js原生imports字段(无额外依赖,推荐)

Node.js v16 原生支持 ESM 模块的路径别名配置,只需要修改 package.json 即可:

// package.json
{
  // 首先添加该字段,让项目.js文件默认按ESM规范解析
  "type": "module",
  // 配置导入别名
  "imports": {
    "~src/*": "./*"
  },
  "dependencies": {
    // 原来的 "~src": "file:." 配置可以直接删除
  }
}

配置完成后即可直接在业务代码中使用别名导入:

import someCode from '~src/absolute/path/someCode';

方案2:兼容ESM+CommonJS双规范场景

如果项目还需要同时兼容旧的 require 语法,可以使用 module-alias 库实现别名复用:

  • 安装依赖:
    npm i module-alias
  • 在 package.json 中添加别名配置:
{
  "_moduleAliases": {
    "~src": "."
  }
}
  • 在项目入口文件最顶部引入注册逻辑:
import 'module-alias/register.js';
// 后续所有代码都可以正常使用~src别名导入
import someCode from '~src/absolute/path/someCode';

方案3:带构建工具的项目配置

如果你的项目使用了 vite、webpack、rollup 等构建工具,也可以直接在构建工具配置中添加别名规则,以vite为例:

// vite.config.js
import { defineConfig } from 'vite';
import path from 'path';

export default defineConfig({
  resolve: {
    alias: {
      '~src': path.resolve(__dirname, './')
    }
  }
});

注意事项

  • Node.js v16 早期版本对ESM别名的支持存在bug,建议升级到v16.15.0以上的LTS版本避免异常
  • 配置"type": "module"后如果仍需要使用CommonJS规范的文件,将对应文件后缀修改为.cjs即可正常使用require语法

内容的提问来源于stack exchange,提问作者Poyoman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:15:07