pnpm run test与vitest run的差异?Solid.js本地测试报错咨询
问题解答
两个命令的核心差异
- 依赖版本与执行环境:
pnpm run test会调用当前项目node_modules里安装的本地vitest版本,而直接执行vitest run用的是你电脑上全局安装的vitest版本,这两个版本大概率存在差异。 - 配置加载逻辑:通过pnpm执行脚本时,会自动读取当前项目目录下的vitest配置文件(比如
vitest.config.js或package.json里的vitest字段),完全以项目上下文运行;直接跑全局vitest时,可能加载到非项目的配置,或是因版本差异导致配置解析规则不兼容。
报错原因
你项目的vitest配置里指定了coverage.provider: c8,但你全局安装的vitest版本已经废弃了c8这个覆盖率提供商,要求改用v8。而项目本地安装的vitest版本还支持c8配置,所以用pnpm run test(调用本地版本)能正常运行,直接跑全局vitest就触发了版本不兼容的报错。
可选解决办法
- 优先使用
pnpm run test执行项目测试,保证测试环境与项目依赖完全匹配 - 如果想直接用
vitest run,要么把全局vitest版本降级到和项目本地一致,要么修改项目配置里的coverage.provider为v8
内容的提问来源于stack exchange,提问作者Felix F Xu
相关产品推荐
相关产品推荐

