Axios构建为ES模块,而不是在Node中运行时的CommonJs。Jest的问题是它在Node中运行代码。这就是为什么告诉Jest转换Axios有效的原因。
Axios SDK附带了一个用于Node env的内置CommonJs文件。因此,我们可以通过将以下内容添加到您的package.json
来修复它:
"jest": {
"moduleNameMapper": {
"^axios$": "axios/dist/node/axios.cjs"
}
}
或者在您的jest.config.(ts|js|json)
中:
"moduleNameMapper": {
"^axios$": "axios/dist/node/axios.cjs"
}
你可以在这里。moduleNameMapper [object<string, string | array<string>>]
从正则表达式到模块名称或模块名称数组的Map,允许用单个模块来清除资源,如图像或样式。