Vitest 别名或 inline.deps 无法解决导入错误

问题描述 投票:0回答:1

我正在将一些玩笑测试迁移到 vitest,由于

node_modules
中外部包依赖项的导入问题,我的一些测试失败了。具体来说:
@package/dependency seems to be an ES Module but shipped in a CommonJS package

vitest 建议对我的配置进行此更改:

export default {
  test: {
    deps: {
      inline: [
        "@package"
      ]
    }
  }
}

不幸的是,这个修复不起作用。之前我用

moduleNameMapper
开玩笑地解决了这个问题,其中
"@package/dependency": "@package/dependency/js"
映射到有效的导入。我尝试在
alias
test.alias
中设置
resolve.alias
,但都不起作用。

我在这个项目中使用 Typescript,我的测试配置的其余部分如下所示:

test: {
    globals: true,
    environment: "jsdom",
    setupFiles: "./src/setupTests.js",
}
// setupTests.js
import {configure} from 'enzyme/build';
import Adapter from 'enzyme-adapter-react-16/build';

configure({ adapter: new Adapter() });

我能做些什么来解决这个问题?谢谢。

vite vitest
1个回答
0
投票

可能的解决方案是:

test: { deps: { optimizer: { include: ["@package"] } } }

但这应该只适用于像

react-leaflet-cluster
这样的外部库,但是这又会无法加载CSS文件

© www.soinside.com 2019 - 2024. All rights reserved.