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

Node.js上运行Jasmine报错ERR_UNSUPPORTED_DIR_IMPORT求解决方案

Node.js 18 + Jasmine 4.5.0 目录导入错误解决方案

在Windows系统Node.js 18.12.1环境下开发Express v4.18.2应用,使用Jasmine 4.5.0测试控制器时,执行jasmine spec会触发以下错误:

Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '...\SimpleServiceJasmine\spec' is not supported resolving ES modules imported from ...\SimpleServiceJasmine\node_modules\jasmine\lib\loader.js
...
code: 'ERR_UNSUPPORTED_DIR_IMPORT',
url: 'file:///D:/.../SimpleServiceJasmine/spec'

代码和测试文件均使用require而非import,但明确指定单个测试文件或匹配单个文件的通配符时可正常运行,例如:

jasmine spec/service/contact-api.spec.js  # 正常运行
jasmine spec/*/c*  # 正常运行

尝试将Jasmine降级至3.0.0和2.0.1版本后问题依旧,且在Windows 11和Windows Server 2019上表现一致。以下是可行的解决方案:

解决方案

1. 强制项目使用CommonJS模块类型

在package.json中添加"type": "commonjs",避免Node.js自动将项目识别为ES模块:

{
  "name": "simpleservice",
  "version": "1.0.0",
  "description": "A simple CRUD API for contacts",
  "main": "service/contact-api.js",
  "type": "commonjs",
  "scripts": {
    "test": "jasmine",
    "start": "node src/service/contact-api.js"
  },
  "author": "Puzzled Dev",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2"
  },
  "devDependencies": {
    "jasmine": "^4.5.0"
  }
}

修改后直接运行npm test或jasmine,Jasmine会自动读取spec/support/jasmine.json的配置执行所有测试。

2. 使用通配符直接匹配测试文件

如果不想修改package.json,可以直接用通配符代替目录参数,让Jasmine直接定位到测试文件而非尝试导入目录:

jasmine spec/**/*[sS]pec.js

也可以将这个命令写入package.json的test脚本:

"scripts": {
  "test": "jasmine spec/**/*[sS]pec.js",
  "start": "node src/service/contact-api.js"
}

3. 清理spec目录下的ES模块文件

检查spec目录及子目录,确保没有.mjs文件或包含import/export语法的.js文件——这类文件会触发Node.js的ES模块解析逻辑,导致目录导入错误。如果存在这类文件,要么改为require语法,要么单独指定文件运行测试。

4. 确认jasmine.json配置有效性

当前的spec/support/jasmine.json配置规则正确,能匹配所有符合命名规范的测试文件:

{
  "spec_dir": "spec",
  "spec_files": [
    "**/*[sS]pec.?(m)js"
  ],
  "helpers": [
    "helpers/**/*.?(m)js"
  ],
  "env": {
    "stopSpecOnExpectationFailure": false,
    "random": true
  }
}

确保配置文件路径正确,运行jasmine不带参数时会自动加载该配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:00:50