Expo Jest 找不到像“file@2x.png”这样的图像

Posted

技术标签:

【中文标题】Expo Jest 找不到像“file@2x.png”这样的图像【英文标题】:Expo Jest can't find images like 'file@2x.png' 【发布时间】:2018-12-19 15:54:10 【问题描述】:

如您所知,Expo 通过分析文件的后缀来使用自适应图像大小,如下所示: xxx@3x.png xxx@2x.png xxx@1x.png

我可以像这样声明省略文件末尾的图像:

const iconHomeButton = require('./images/homeButton.png');

文件夹上的真实图片名称实际上是:

homeButton@2x.png

在 Expo 上它工作正常,但是当我尝试使用 Jest 对其进行测试时,它找不到图像。 如果我将文件名更改为真实名称,例如:

const iconHomeButton = require('./images/homeButton@2x.png');

然后 Jest 测试有效。

有没有办法在不改变我的 Expo 项目的情况下使用 Jest 对其进行测试?

【问题讨论】:

【参考方案1】:

package.json中配置Jest可以解决问题。添加moduleNameMapper 将使您的测试正常:

"jest": 
    "preset": "jest-expo",
    "moduleNameMapper": 
        "^[@./a-zA-Z0-9$_-]+\\.(png|jpg|gif)$": "RelativeImageStub"
      

【讨论】:

以上是关于Expo Jest 找不到像“file@2x.png”这样的图像的主要内容,如果未能解决你的问题,请参考以下文章

Jest-expo 测试不运行

使用 Yarn 或 NPM 进行原生反应找不到 @expo/bunyan。我必须做啥?

SyntaxError:无法在模块外使用 import 语句:运行 Jest-expo 测试时

在使用 jest 的 vue 测试中找不到模块“@jest/globals”

在这个项目中找不到 expo - 你运行 yarn / npm install 了吗? npm 已安装,expo 目录存在

NestJS Jest 找不到具有绝对路径的模块