如何让 babelify 10 定位浏览器

2024-01-12

我想要的是

  1. 使用最新版本的库。
  2. 让它在 IE 11 中运行。

我正在构建一个 React 应用程序,为了运行测试,我需要 @testing-library/react。为了在浏览器中运行测试,我需要 browserify。为了在我支持的每个浏览器中运行测试,我需要 babelify。然而,无论我尝试什么,babelify 都不执行任何操作(并且 IE 11 不支持它生成的 ... 或 => 语法)。

这是 package.json 的相关部分(可能不需要某些依赖项):

      "dependencies": {
          "@babel/cli": "^7.8.4",
          "@babel/core": "^7.9.6",
          "@babel/plugin-proposal-class-properties": "^7.8.3",
          "@babel/plugin-transform-arrow-functions": "^7.8.3",
          "@babel/polyfill": "^7.8.7",
          "@babel/preset-env": "^7.9.6",
          "@babel/preset-react": "^7.9.4",
          "@testing-library/react": "^10.0.4",
          "babelify": "^10.0.0",
          "browserify": "^16.5.1",
          "react": "^16.13.1",
          "react-dom": "^16.13.1"
        },
        "browserslist": [
          "IE 11"
        ]

看起来应该可以工作的代码:

    require('browserify')({
       entries: ['./node/ReactUtil.js']
    })
    .transform("babelify", {
       presets: [['@babel/preset-env', {"targets": {
          "browsers": ["ie < 8"]
       }}]]
    })
    .bundle()
    .pipe(fs.createWriteStream("javascript/generated/ReactUtil.js"));

我尝试过字符串 babelify 和 require("babelify")。我尝试过 require("babelify").configure。我尝试在工作目录中创建一个名为 babel.config.json、.babelrc 和 .babelrc.json 的文件。我在工作目录中尝试过 babel.config.js (其格式不同)。 (这些文件的内容已被排除以防止 tl;dr)。

生成的文件没有不同(或者是空的)并且没有错误。唯一给我带来错误的是:

    .transform('babelify', {
       "presets": [
          [
             "env",  //Error: Cannot find module 'babel-preset-env'. Did you mean "@babel/env"?
             {
                "targets": {
                   "browsers": [
                      "ie < 8"
                   ]
                }
             }
          ]
       ]
    })

所以我将“env”更改为“@babel/env”,并且 babelify 没有执行任何操作...转换不能在包或管道之后进行,如果我尝试在此之后运行@babel/core(输出不同的文件名),则会出现竞争条件,因为 browserify 尚未完成文件写入。

我不会完全反对切换工具,但我认为 babelify 应该能够按预期工作。也许 babelify 不支持我使用的新版本?我找不到针对浏览器的 babelify 文档,并且示例/其他堆栈溢出已经过时或不起作用。有太多可能的组合需要尝试。请注意,这在 Chrome 中工作正常,因此 browserify 部分工作正常。


None

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

如何让 babelify 10 定位浏览器 的相关文章

随机推荐

  • 如何让手风琴区域扩展到(垂直)动态内容?

    我有一个主数据网格 然后在它下面有一个手风琴控件 在其中一个手风琴项目中 我有另一个数据网格 它绑定到第一个数据网格的选定项目 简单的xaml是
  • 通过 Django 使用 RESTful API

    我正在构建一个 Django 应用程序 需要与第三方 RESTful API 交互 对该资源进行各种 GET PUT 等 我正在寻找一种在 Django 中表示该 API 的好方法 最明显但可能不太优雅的解决方案似乎是创建一个模型 该模型具
  • 当 Iterator::map 返回 Result::Err 时,如何停止迭代并返回错误?

    我有一个函数返回一个Result fn find id Id gt Result
  • 使用 Selenium WebDriver 的 Spring Boot Web 应用程序

    我正在尝试了解 Spring Boot 但在尝试将 Selenium 集成到我的 Spring Boot 应用程序中时遇到了一些问题 我正在尝试实现一个简单的网页 其中有一个输入框和按钮 输入框将包含一个 URL 然后该按钮将启动一个 se
  • 将键值列分组为一行

    我正在尝试从在双列中存储键值对的 SQLite 表中提取数据 例如 用键foo bar man and row 该表将如下所示 id external id key value 1 12345 foo cow 2 12345 bar moo
  • 请对家庭版本控制系统提出建议

    我有一个真正需要纳入源代码管理的家庭项目 我尝试安装 Subversion 我对此有一些经验 但无法运行 我不是特别想使用 SourceSafe 我对 Git Mercury 有点紧张 因为它有点神秘 尽管这只是基于意见而不是我的经验 主要
  • 编译时浮动打包/双关

    我正在为 PIC32MX 编写 C 语言 使用 Microchip 的 PIC32 C 编译器 基于 GCC 3 4 进行编译 Added我遵循的标准是 GNU99 带有 GNU 扩展的 C99 编译器标志 std gnu99 我的问题是
  • Rails 助手无法在测试环境中工作

    我已按照以下网址提供的教程进行操作http railscasts com episodes 221 subdomains in rails 3 http railscasts com episodes 221 subdomains in r
  • 配置文件 WPF 控件实例化性能

    有没有一种好方法来测试实例化控件的性能 特别是在以下方面DataBinding and Templates表现 我想知道需要多少时间应用模板 and 初始化数据绑定 takes 我正在使用 WPF Performance Suite 和 A
  • 将 UIView 绕其中心旋转几次

    我正在尝试旋转一些UIView围绕它的中心 所以简单的代码是这样的 伪代码 UIView beginAnimations crazyRotate context nil UIView setAnimationDuration 1 0 som
  • 如何在 Python 中让用户选择要更新的键,然后选择新值来更新字典值?

    我正在尝试编写一个程序 我和我的兄弟可以输入和编辑足球比赛名单中的信息 以比较球队和管理球员等 这是我尝试过的第一个 大 项目 我在字典中有一个嵌套字典 我可以让用户创建字典等 但是当我尝试让 用户 通过 raw input 返回编辑它们时
  • Kubernetes:minikube 持久卷本地文件系统存储位置

    我已经阅读了所有文档和一些 SO 帖子 但找不到这个问题的答案 minikube 将其持久卷保存在我的本地 Mac 文件系统中的什么位置 Thanks 首先请记住 Kubernetes 运行在Minikube https minikube
  • NodeJS Express req.session 未定义

    就是想不通这个 我发现的关于快速会话的所有内容都表明它确实有效 但对我来说并非如此 我的整个应用程序配置 app configure gt app set port process env PORT 3000 app set views p
  • 通过同级子视图传播触摸事件?

    我有一堆子视图 它们都有用户交互部分 子级 并且全屏 问题是 如果我触及堆栈顶部的非交互式部分 它不会将该触摸传播到堆栈的其余部分 我的设置 视图A view B 全屏容器 本身不是交互式的 但具有交互式子视图 视图B1 互动 查看B2 互
  • 以编程方式向 Woocommerce 3.2+ 中的订单添加折扣

    在 woocommerce 中 我们可以使用优惠券功能为任何订单添加折扣 固定金额 百分比金额 是否可以以编程方式向任何订单添加折扣金额 其中折扣金额可以是任意金额 任何帮助将不胜感激 以编程方式为订单提供折扣的唯一可用功能 正在欺骗Fee
  • 控制器未收到英国格式的 MVC3 日期

    给定这个虚拟机 public class ApplicationDTO BaseDTO public DateTime Date get set public int JobId get set public int Status get
  • WPF 动画/UI 功能性能和基准测试

    我正在为某些业务线的一些奇特的 WPF UI 工作做一个相对较小的概念验证 即使没有太疯狂 我在使用许多功能时已经看到一些非常糟糕的性能 我认为这些功能是首先考虑使用 WPF 进行 UI 构建的主要原因 我在这里问了一个问题 为什么我的动画
  • Spring WS WebServicesTemplate/Jaxb2Marshaller 客户端查看原始 xml?

    是否可以使用 WebServicesTemplate 和 Jxb2Marshaller 作为编组引擎来查看 Spring WS 客户端的请求和响应 我只是想记录 xml 而不是对原始 xml 执行任何操作 See the spring ws
  • 核心数据:在实体 中未找到键路径错误

    谁能告诉我这段代码有什么问题吗 它会引发以下错误并导致应用程序崩溃 reason keypath Studies patients PatientName not found in entity
  • 如何让 babelify 10 定位浏览器

    我想要的是 使用最新版本的库 让它在 IE 11 中运行 我正在构建一个 React 应用程序 为了运行测试 我需要 testing library react 为了在浏览器中运行测试 我需要 browserify 为了在我支持的每个浏览器