Vitest “incorrect main/module/exports specified in its package.json“

487 阅读1分钟

使用Vitest进行单元测试出现错误

The package may have incorrect main/module/exports specified in its package.json

查询后发现类似的问题在网上有很多,有一类情况就是三方包本身的配置问题 具体见github

我需要测试的代码其实不需要用到当前不能解析的这个包,所以可以按照链接回答中的方案,将包的解析处理成另外一个mock文件,这样只要不真正在测试中使用到相应的包代码,就可以跳过当前错误。

//vite.config.ts
export default defineConfig({
  test: {
    alias: {
      obsidian: './__mocks__/obsidian.ts'
    }
  },
})

obsidian替换为实际解析时的包名,然后在mock的文件中加入需要的代码即可。

// obsidian.ts
export default {};

注意:这种方案只能在不是实际使用此三方库,如果实际需要使用,则必须改变三方库导出方式,使vitest能识别。