使用 jest 和 React 时出现“无法在模块外部使用 import 语句”错误

2024-03-22

我正在尝试使用 jest 和 react-testing-library 进行测试,但是当我尝试在测试块内渲染应用程序时,我收到此错误:

...{import axios from './lib/axios.js';
                                                                                 

SyntaxError: Cannot use import statement outside a module

经过一番研究后,我发现 jest 在使用 babel-jest 转换模块时会忽略 node_modules 中的所有内容。有没有办法让axios模块进行改造?

这是我的 package.json 文件

{
  "name": "weather_app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "jest",
    "start": "webpack serve --config webpack.config.js",
    "react-dev": "webpack --mode development --watch",
    "server-dev": "npx nodemon server.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.19.3",
    "@babel/plugin-proposal-class-properties": "^7.18.6",
    "@babel/preset-env": "^7.19.4",
    "@babel/preset-react": "^7.18.6",
    "@testing-library/react": "^13.4.0",
    "babel-jest": "^29.2.0",
    "babel-loader": "^8.2.5",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^6.7.1",
    "html-webpack-plugin": "^5.5.0",
    "jest": "^29.2.0",
    "jest-environment-jsdom": "^29.2.0",
    "react-test-renderer": "^18.2.0",
    "style-loader": "^3.3.1",
    "webpack": "^5.74.0",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^4.11.1"
  },
  "dependencies": {
    "@fortawesome/fontawesome-svg-core": "^6.2.0",
    "@fortawesome/free-solid-svg-icons": "^6.2.0",
    "@fortawesome/react-fontawesome": "^0.2.0",
    "axios": "^1.1.2",
    "dotenv": "^16.0.3",
    "mysql2": "^2.3.3",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "url": "^0.11.0"
  }
}

和我的 .babelrc 文件

    {
  "presets": [
    "@babel/preset-env",
    ["@babel/preset-react", {"runtime": "automatic"}],
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties"
  ]
}

我没有 jest 或 babel 的任何其他配置文件


我找到了解决方案。您可以向 jest.config.js 文件添加一个属性,并指定节点模块中的模块进行专门转换,但仍然忽略其余节点模块。为了告诉 babel-jest 转换 axios,它看起来像这样:

transformIgnorePatterns: ['<rootDir>/node_modules/(?!(axios)/)']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jest 和 React 时出现“无法在模块外部使用 import 语句”错误 的相关文章

随机推荐

  • Javascript - 如何查找希伯来语?

    我正在尝试查找字符串是否以 RTL 语言 希伯来语开头 第一个字母 有任何想法吗 这将找到编码在以下内容中的希伯来字母Hebrew http www alanwood net unicode hebrew htmlUnicode 代码点范围
  • 对 numpy.c_ 文档和示例代码感到困惑

    我多次阅读有关 numpy c 的文档 但仍然感到困惑 据说 将切片对象转换为沿第二轴的串联 在下面的文档中 谁能在下面的示例中澄清什么是切片对象 什么是第二轴 我看到它们都是一维的 并且混淆了第二轴的来源 在 Windows 上使用 Py
  • PHP $_SERVER['SERVER_NAME'] 正确使用

    菜鸟问题在这里 我正在使用 php 构建一个交互式网站 并且我决定制作一个交互式菜单 嗯 我的菜单包含一个名为 menu php 的文件 我不知道为什么 但是当我点击这个链接时 它看起来像这样 http localhost mysite 本
  • SEGMENT_START("text-segment", 0x400000) 代表什么?

    我正在学习可执行二进制文件的布局 我的最终目标是分析特定可执行文件中可以重构 在其源代码中 以减少编译输出大小的内容 我一直在使用https www embeddedlated com showarticle 900 php https w
  • Django 检查相关对象是否存在错误:RelatedObjectDoesNotExist

    我有一个方法has related object在我的模型中需要检查相关对象是否存在 class Business base name models CharField max length 100 blank True null True
  • cocos2d v3 在应用程序使用过程中重新定向屏幕

    所以在 cocos2d 中 我相信我使用的是 v2 1 我这样做是为了锁定和设置方向 AppDelegate delegate AppDelegate UIApplication sharedApplication delegate con
  • 条目 Xamarin Forms PCL 上的边框半径

    有没有办法在 Xamarin 的 XAML 中的条目上设置边框半径 或者使用自定义渲染器或其他东西 到目前为止我尝试过的所有方法都没有效果 但对于我的应用程序来说 如果我有圆形边框会更好 预先感谢您的答复 PS 我查过了这个帖子 https
  • 如何“取消观看”表达式

    假设我有一个带有大数组的 ng repeat 当 ng repeat 运行时 它会将该数组的每个元素添加到一个隔离的作用域中 并将数组本身包含在一个作用域中 这意味着 digest 检查整个数组的更改 最重要的是 它检查每个单独的元素在该数
  • 如何将 tf.metrics.__ 与估计器模型预测输出一起使用

    我尝试遵循tensorflow API 1 4文档来实现我在学习过程中所需要的 我现在在这个阶段 可以生成一个预测对象 例如 classifier tf estimator DNNClassifier feature columns fea
  • JSF GAE:托管 bean 方法中的值更新问题

    我有以下一段简单的代码h outputText指向一个int and a p commandLink设置一个值
  • 使用backbone.marionette和requireJs的Web应用程序的循环依赖关系

    我处于以下情况 我正在使用 requireJs 加载模块 并且不想使用全局变量 main js 负责加载路由器 然后路由器加载应用程序 应用程序加载几个子应用程序 一切都初始化后 子应用程序需要router制作router navigate
  • 从扩展程序读取和写入 iOS 应用程序文档文件夹

    我正在开发一个具有操作扩展的 Objective C iOS 应用程序 加载操作扩展时 我需要从主机应用程序的文档目录中读取一些文件 然后将文件写入主机应用程序文档目录 我创建了一个应用程序组 并且应用程序和扩展程序都设置了该应用程序组 但
  • 使用参数从 PowerShell 调用 Excel 宏

    使用 Powershell 从脚本调用 Excel 宏相当容易 例如使用如下脚本this http blogs technet com b heyscriptingguy archive 2009 01 13 how do i run an
  • 仅在悬停时显示 d3 节点文本

    我试图仅在鼠标悬停时显示节点文本 当我将鼠标悬停在节点上时 svg 圆的不透明度发生变化 但仅显示第一个节点的文本 我发现这是因为我如何使用 select 元素 但我不知道如何为我悬停的节点提取正确的文本 这是我目前所拥有的 node ap
  • 如何在 Spotfire 分析中链接 CSS 样式表?

    我可以在 Spotfire 页面中创建 Javascript 但我不知道如何添加 CSS 文件 请问有什么建议吗 这并未得到 Spotfire 工程部门的批准 但您可以使用 JQuery 注入托管在运行 Spotfire 的计算机 即您的本
  • 什么是感知均匀色彩空间以及 LAB 色彩空间如何实现感知均匀? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 什么是感知均匀的色彩空间 Lab 色彩空间如何在感知上一致且与设备无关 slhck 是正确的 感知均匀的色彩空间确保两种颜色之间的差异 人
  • 使用 FileHelper 设置属性格式

    文件助手 http www filehelpers com 有一个很好的字段日期转换器 FieldConverter ConverterKind Date MM dd yyyy public DateTime MyDate 但 FieldC
  • iPhone 模拟器上的日历

    如何在 iPhone 模拟器上访问日历 我正在使用 Titanium 制作一个应用程序 并且创建了一个事件 它应该有效 现在我想测试它是否正确保存在日历中 谁能告诉我如何打开它 Thanks Tjekkles 狮子更新 要进入用户库文件夹
  • Prometheus AlertManager - 根据路由向不同客户端发送警报

    我有2个服务A and B我想监控 我还有 2 个不同的通知渠道X and Y形式为receivers在 AlertManager 配置文件中 我想发送通知X如果服务A出现故障并想要通知Y如果服务B下跌降落 我怎样才能实现这个我的配置 我的
  • 使用 jest 和 React 时出现“无法在模块外部使用 import 语句”错误

    我正在尝试使用 jest 和 react testing library 进行测试 但是当我尝试在测试块内渲染应用程序时 我收到此错误 import axios from lib axios js SyntaxError Cannot us