我正在将一些玩笑测试迁移到 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() });
我能做些什么来解决这个问题?谢谢。
可能的解决方案是:
test: { deps: { optimizer: { include: ["@package"] } } }
但这应该只适用于像
react-leaflet-cluster
这样的外部库,但是这又会无法加载CSS文件