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

Node.js/Deno中PHP include_path的等价方案及根目录指定方法

Node.js 对应 PHP include_path 的方案

1. NODE_PATH 环境变量(最接近)

这是和PHP include_path逻辑最像的方式,把项目根目录(或指定目录)加入NODE_PATH后,require/import就能直接从该目录开始查找文件,不用写冗长的相对路径。

举个例子,项目结构如下:

project-root/
├─ src/
│  ├─ utils/
│  │  └─ helper.js
└─ app.js

设置环境变量:

  • Windows命令行:set NODE_PATH=./src
  • Linux/macOS终端:export NODE_PATH=./src

之后在app.js里就能直接写:

// CommonJS
const helper = require('utils/helper.js');
// ES模块
import helper from 'utils/helper.js';

注意:Node.js官方现在不推荐依赖NODE_PATH,建议优先用下面的配置方式。

2. package.json 配置别名

在项目根目录的package.json中添加exports字段,自定义模块引用别名:

{
  "exports": {
    "#utils/*": "./src/utils/*"
  }
}

引用时直接用别名:

const helper = require('#utils/helper.js');
// ES模块
import helper from '#utils/helper.js';

如果是TypeScript项目,还可以在tsconfig.json的compilerOptions.paths里配置:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@utils/*": ["src/utils/*"]
    }
  }
}

3. 手动添加模块路径(不推荐生产用)

可以通过module.paths数组手动添加路径,但会影响全局模块加载逻辑,仅适合临时测试:

module.paths.push('./src');
const helper = require('utils/helper.js');

Deno 对应方案

Deno官方推荐用Import Map来实现类似路径别名的功能,也支持直接使用绝对路径。

1. Import Map(官方推荐)

创建import_map.json文件,定义路径别名:

{
  "imports": {
    "@utils/": "./src/utils/"
  }
}

运行Deno时指定该文件:

deno run --import-map=import_map.json app.js

之后在代码里就能这样引用:

import helper from '@utils/helper.js';

2. 绝对路径引用

通过Deno.cwd()获取项目根目录,拼接成绝对路径引用:

const rootDir = Deno.cwd();
import helper from `${rootDir}/src/utils/helper.js`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:40:38