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

Node.js 18.04.0 无法找到 node:test 模块问题求助

我正在尝试使用node:test测试运行库,因此需要将Node.js版本更新至18.04+的非稳定版本,但运行时出现了模块未找到的错误,具体错误信息如下:

node:internal/modules/cjs/loader:949
throw err;
^

Error: Cannot find module '/home/project_name/out/test'
    at Module._resolveFilename (node:internal/modules/cjs/loader:946:15)
    at Module._load (node:internal/modules/cjs/loader:787:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
解决node:test的MODULE_NOT_FOUND错误

这个错误核心是Node.js找不到你指定的/home/project_name/out/test模块文件,大概率是路径配置、编译输出或者调用方式的问题,我给你几个排查方向:

1. 先确认目标路径是否存在

首先手动检查/home/project_name/out/test这个目录下有没有对应的可执行文件(比如test.js或者index.js):

ls -la /home/project_name/out/test

如果目录是空的或者根本不存在:

  • 如果你用的是TypeScript,检查tsconfig.json里的outDir配置,确保编译后的文件输出到out目录;
  • 执行编译命令生成输出文件:
    tsc
    
  • 如果是JavaScript项目,确认你的测试文件是否被正确复制到了out/test目录。

2. 检查node:test的调用方式是否正确

node:test是Node.js内置的测试运行器,不需要手动指定编译后的单文件路径(除非你特意要运行单个编译后的测试文件)。正确的调用方式应该是直接指向测试文件所在的目录或匹配模式:

  • 直接运行源码测试文件(如果是TS,需要用tsx/ts-node):
    # JS项目
    node --test test/**/*.test.js
    # TS项目
    tsx --test test/**/*.test.ts
    
  • 如果你坚持运行编译后的文件,要确保路径指向具体的文件,而不是目录(除非目录下有index.js):
    node --test out/test/**/*.test.js
    

3. 切换到Node.js 18稳定版试试

你用的是18.04+的非稳定版,而node:test在Node.js 18.0.0稳定版就已经正式可用了,非稳定版可能存在一些未修复的路径解析bug。可以用nvm切换到稳定版:

nvm install 18.17.0
nvm use 18.17.0

之后再重新运行测试,看错误是否消失。

4. 检查package.json的测试脚本配置

如果是通过npm test运行测试,确认scripts里的路径是否正确:

{
  "scripts": {
    "test": "node --test out/test/**/*.test.js"
  }
}

确保这里的路径和你实际的编译输出路径完全匹配,比如如果你的测试文件编译后在dist/test,就要把路径改成dist/test/**/*.test.js。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 00:04:06