将外部 JavaScript(来自 CDN)捆绑到 React 组件中

2024-01-06

有哪些选项可以将外部 javascript sdk 捆绑到 React 组件中?

我尝试在index.html中包含javascript并通过window.xyz引用它。它运行良好,但我无法进行生产构建,因为 javascript 不是以这种方式打包的。

有没有办法简单地将 javascript 文件导入到 React 组件定义中?

PS:这里是React新手!


如果您希望将脚本捆绑在构建中,您有 2 个选择:

1. 如果外部文件是module https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export,我会按如下方式处理它:

  1. 下载外部 JS 文件并将其保存在项目中的某个位置。例如,将其保存到/utils folder.
  2. 只需引用它并在组件中使用它:import { test } from '/utils/external'

2.如果不是模块:

  1. 与上面相同 - 将文件保存到您的项目中。
  2. 不同之处在于您必须配置模块捆绑器才能导出全局变量。这个过程称为Shimming and 这是使用 Webpack 的方法 https://webpack.js.org/guides/shimming/#global-exports.
  3. 与步骤 2 相同 -import { test } from '/utils/external'

* 在这两种情况下,我假设它是一个独立的外部文件,而不是作为包(npm / Bower / 等)托管在某处。如果它是一个包,您应该使用包管理器,而不是手动下载它。


如果你想异步加载它(但不捆绑):

跟着@Paras 回答 https://stackoverflow.com/a/52863340/4312466,他建议使用脚本异步延迟加载库。

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

将外部 JavaScript(来自 CDN)捆绑到 React 组件中 的相关文章

随机推荐

  • Javascript Chart.js 比例修复

    我有一个关于 Chart js 的简单问题 我想知道如何修复我的图表 我使用 Chart js 和 respChartJS https github com arifLogic respChartJS https github com ar
  • 如何记录 makefile?

    有没有办法在 Makefile 中编写 标准 注释 以便稍后将它们提供给类似 Doxygen 的程序 从而输出漂亮的 例如 HTML 或 man 文档 我想对我的主要目标有一个清晰的概述 但不要太花哨 以下是一个更简单的解决方案 不需要定义
  • “不变”属性是抽象定义的一部分吗?

    作为我学习的一部分 我认为我发现的抽象定义的最佳答案 有意义 来自 stackoverflow 什么是抽象 https stackoverflow com questions 7028242 what is abstraction 除此之外
  • 如何用ReentrantLock加锁?

    我希望以下测试仅打印 已锁定 一次 但它最终会打印该行 public class LocKTest Test public void testLock Lock lock new ReentrantLock while true if lo
  • Python 2.6 JSON解码性能

    我正在使用jsonPython 2 6 中的模块用于加载和解码 JSON 文件 然而 我目前的表现比预期的要慢 我正在使用一个大小为 6MB 的测试用例json loads 需要 20 秒 我以为json模块有一些本机代码来加速解码吗 我如
  • 你可以在 Laravel 中扩展 Command 类吗

    我目前正在开发一个使用 Laravel 4 的应用程序 我正在构建一个评论系统 并拥有用于创建 更新 删除的基本命令 接下来我要做的是为评论将附加到的特定对象 例如博客文章 创建命令 所以如果我的命令文件被调用CreateCommentCo
  • 即使 JSON feed 正确,fullCalendar 事件也不会显示

    与其他人一样 我在将 JSON feed 事件呈现在日历中时遇到问题 问题通常是错误的 JSON 格式 但事实并非如此 因为我已经使用 JSONlint 对其进行了验证 并在 Site Master 中对 JSON 提要进行了硬编码 并得到
  • OOP 有什么规则吗?

    最近听说OOP Java 有9条规则 我只知道四种 抽象 多态 继承和封装 OOP 还有更多规则吗 似乎您正在寻找的是面向对象设计的原则 http www butunclebob com ArticleS UncleBob Principl
  • 在 xml 中自动生成 JUnit 结果的最佳方法是什么?

    我目前正在 JUnit 中编写一系列测试 我需要将结果自动导出为 XML 我读到 执行此操作的最佳方法是扩展 RunListener 类并以这种方式编写 XML 下面是我迄今为止所做的示例 但我正在努力解决如何提取已运行的每个测试的信息 D
  • 将条件面板与 checkboxGroupInput 中的值结合使用

    我想使用 checkboxGroupInput 然后 如果选中某个框 我想要一个条件面板 一个玩具示例在这里 shinyUI fluidPage sidebarLayout sidebarPanel checkboxGroupInput i
  • 互信息,Kullback Leibler 两个彩色图像之间的散度

    我正在研究一个使用互信息进行图像分类的项目 它要求我使用彩色图像的概率分布 要么我想计算Matlab中的互信息或Kullback Leibler散度 谁能帮我解决这个问题吗 我将彩色图像的熵计算为 I imread s1 png rgb c
  • 如何在hive中使用order by和collect_set()操作

    在表 1 中 我有 customer id item id 和 item rank 根据某些销售额的项目排名 我想收集每个 customer id 的项目列表 并根据 item rank 排列它们 Customer id item id r
  • 如何将输入类型日期的默认值设置为今天?

    给定一个输入元素
  • Cypress 装置 - 无法读取未定义的属性(读取“数据”)

    我正在尝试使用固定装置来保存不同测试的数据 特别是用户凭据 这是代码的示例 当进行第二次测试时 我得到了 Cannot read properties of undefined reading data 有什么想法以及如何解决这个问题吗 这
  • PHP 删除点和连字符

    您好 我需要从变量时间和日期中删除点和连字符 这是我的代码 todaydate date Y m d n time utc mktime date G date i date s NowisTime date G i s time utc
  • Supervisorctl 不使用 Sqs 我得到了错误

    安装并配置后supervisor我有一些工作正在排队LaravelWeb应用程序 我的服务器操作系统是centOs运行后supervisor我收到这个错误 Symfony Component Debug Exception FatalThr
  • 不区分大小写 preg_replace_callback

    在下面的函数中 我想匹配关键字不区分大小写 应匹配 蓝色瑜伽垫 和 蓝色瑜伽垫 但是 目前仅当关键字大小写相同时才匹配 mykeyword 蓝色瑜伽垫 post gt post content preg replace callback b
  • 释放模式下不显示菜单

    我希望我为测试条目创建的菜单应该处于调试模式 但是当我发布 启动 我的应用程序时 不应为测试条目显示菜单 有人可以帮助我吗 检查IS DEBUG MODE在您的应用程序中标记并在其中添加代码 Use PackageManager得到一个Ap
  • 如何去掉不必要的括号?

    Same as this https stackoverflow com questions 10999835 regular expression to remove multiple parenthesis但是JavaScript 几个
  • 将外部 JavaScript(来自 CDN)捆绑到 React 组件中

    有哪些选项可以将外部 javascript sdk 捆绑到 React 组件中 我尝试在index html中包含javascript并通过window xyz引用它 它运行良好 但我无法进行生产构建 因为 javascript 不是以这种