Jestjs 使用babel插件导入测试Jest

Jestjs 使用babel插件导入测试Jest,jestjs,babeljs,antd,babel-jest,Jestjs,Babeljs,Antd,Babel Jest,由于babel插件的导入,玩笑被打破了。我正在使用。较少的风格与蚂蚁设计,我相信这是造成它。我是Jest库的新手,所以我不确定导入或绕过该问题的正确方法 示例: Test Suite failed to run Cannot find module 'antd/lib/skeleton/style' from 'index.js' .babelrc文件 "plugins": [ ["import", { "libraryName": "antd", "style": true }],

由于babel插件的导入,玩笑被打破了。我正在使用。较少的风格与蚂蚁设计,我相信这是造成它。我是Jest库的新手,所以我不确定导入或绕过该问题的正确方法

示例

Test Suite failed to run
Cannot find module 'antd/lib/skeleton/style' from 'index.js'
.babelrc文件

 "plugins": [
    ["import", { "libraryName": "antd", "style": true }],

我尝试过许多解决方案,如babel jest、moduleNameMapper等,但很可能我没有正确使用它们。

正确的答案是:

In.babelrc:

将生产、开发和“测试”分别放在“env”下面的.babelrc中。在生产和开发方面,让babel插件导入保持原样。在“测试”中,确保将其删除(Jest无法处理)

在Package.json中

欢迎您在此文件中配置Jest,但最重要的是在测试的NPM脚本上,您向它传递一个
节点\u ENV=test Jest
,以便它设置babel将要引用的正确环境

Docker/Virtualenv/Kubernetes用户

最后,如果您正在使用Docker/Kubernetes或某种在本地计算机之外安装了包的工具,请确保这些包已实际安装。。。。。我忘记了,当我从“测试”中删除babel插件导入,并开始看到
antd未定义的错误时,这让我有点抓狂。当我意识到这是因为Ant Design只安装在我的Kubernetes节点上,而不是在我运行命令的计算机上。愚蠢的错误,但当你看到错误代码数小时后很容易犯