调试使用 ES6 模块的 JavaScript 代码

2024-01-19

TL;DR:如何从调试器访问 ES 模块中定义的变量/函数/名称?

更多背景信息:我是一位经验相对丰富的 JavaScript 程序员,但对模块还是个新手。我已经按照 MDN 上的教程进行操作:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules。他们在这里有一组很好的例子:https://github.com/mdn/js-examples/tree/master/modules https://github.com/mdn/js-examples/tree/master/modules

在该集合中,在“基本模块”示例中,(此处的实时代码:https://mdn.github.io/js-examples/modules/basic-modules/ https://mdn.github.io/js-examples/modules/basic-modules/)例如,有一个函数称为random在文件中modules/square.js。假设我想在调试器中执行该函数,只是为了尝试一下,或者因为它是我的代码并且我想测试/调试它,或者我想向另一个编码器演示该函数的作用。您期望在 REPL 或调试器中执行的所有操作。有没有办法做到这一点?我尝试过 Firefox 调试器和 Chrome 调试器,但没有成功。

回到前模块时代,该代码将被放入全局名称空间中(使访问变得容易),或者将被锁定在 IIFE 中(使访问变得不可能)或可能在一些自制的模块系统中(访问取决于)。我希望新的模块系统仍然允许调试器访问模块内的名称。

Thanks.


It says 在文档中 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules#Other_differences_between_modules_and_standard_scripts:

最后但并非最不重要的一点是,让我们明确这一点 - 模块功能被导入到单个脚本的范围内 - 它们在全局范围内不可用。因此,您只能在导入的脚本中访问导入的功能,而无法从 JavaScript 控制台访问它们。您仍然会收到 DevTools 中显示的语法错误,但您将无法使用您可能期望使用的一些调试技术。

要使用之前的示例,您需要从可见的范围(即导入该函数的范围)调用该函数:

import { random } from 'path/to/square.js'

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

调试使用 ES6 模块的 JavaScript 代码 的相关文章

  • 在图像加载之前显示替代文本来代替图像

    在图像加载之前 如何显示文本代替图像 因为在 HTML 网站上我有一个图像作为页面的标题 所以页面完全加载 标题图像稍后出现 h1 img src heading png alt Some nice heading here width 6
  • 带有路径连接器的 jQuery 可拖动小部件

    参考该图像 Block1 和Block2 都是可拖动的 我的问题是 如何在两个块之间制作红色链状连接器 要求是链条应该延伸到块被拖动的地方 请提供任何教程 学习材料的指示 谢谢 有许多 Jquery 插件可用于创建数据库可视化或流程图的连接
  • Soundcloud自定义播放器动态添加和播放歌曲

    我在用soundcloud自定义播放器 https github com soundcloud soundcloud custom player创建一个可以播放所有歌曲的播放器 我的网站 当我只放置任何曲目或帖子的静态网址时 这效果非常好
  • 是否可以实现异步跨域文件上传?

    有可能的 参见下文 首先我用这张图来解释一下异步文件上传可以实现 对不起 我已经关闭了我的一个域 该图像现在消失了 不过 这确实是一个很好的图像 这是在我发现 Stack Overflow 可以通过 Imgur 上传图像之前 正如您所看到的
  • ios safari - getUserMedia 无法正常工作

    我真的有this https stackoverflow com q 45692526 6048715问题 但 OP 的解决方案对我不起作用 重申一下 我正在使用navigator mediaDevices getUserMedia 在浏览
  • Google Analytics 是否具有针对长时间运行的网络应用程序的“心跳”功能?

    我正在制作一个专注于观看嵌入内容的网络应用程序 我希望应用程序客户端向 GA Google Analytics 发送 心跳 类型的信号以保持会话继续进行 现在看来 如果访问者观看视频 5 10 分钟 GA 就会假设他已经离开页面 并将用户的
  • JavaScript 和数据库连接

    javascript可以直接访问数据库吗 我觉得我的问题是反问 因为这是一个安全问题 但这有可能吗 有可能的 有了新的html5功能 js可以通过WebSql连接 一个活生生的例子 http html5demos com database
  • Rails - 将模块包含到控制器中,以在视图中使用

    我对 Rails 很陌生 我尝试设置一个要在视图中使用的模块文件 所以我相信正确的行为是将模块定义为控制器中的助手 瞧 它应该可以工作 然而 对我来说情况并非如此 这是结构 lib functions form manager rb 表单管
  • emacs 的最佳 java 工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PMT功能 支付方式

    下面是我计算贷款付款的函数 就像在 Excel 中一样 我需要添加另一个参数 即付款类型 function PMT ir np pv fv ir interest rate per month np number of periods mo
  • 单击按钮时执行 python 脚本

    我有一个带有一个按钮的 HTML 页面 当我们单击该按钮时 我需要执行一个 python 脚本 并返回到包含结果的同一 HTML 页面 所以我需要对返回值进行一些验证并执行一些操作 这是我的代码 HTML
  • 使用 ChartJS v2.0 自定义图例

    我正在尝试在 ChartJS v2 0 中创建自定义图例模板 在 ChartJS v1 中 我只是向新的 Chart 构造函数添加了一个属性 例如 legendTemplate ul li span style background col
  • 字符串编码器固定大小输出

    我接到一个任务 需要编写一个具有以下要求的编码器 输入 1 到 8 位的整数 即 12345678 2352 76543 输出 固定大小的 6 位代码 可以包含任何字母数字和符号 a z A Z 0 9 该操作必须是可逆的 因此给定一个代码
  • 使用HTMLWebpackPlugin时如何通过webpack加载图片?

    我正在使用 HTMLWebpackPlugin 在我的模板中我有一个 img 标签 img src images logo png 如果您注意到 这里我使用相对路径 认为 webpack 将触发在 webpack config js 文件中
  • 使用 var 与 let/const 进行块级变量重新声明

    Part 1 给出这个例子 var number 10 var number 42 console log number 42 为什么第 4 行不抛出Uncaught SyntaxError Identifier number has al
  • webpack 5 中是否可以让不同的入口包到不同的输出路径

    我正在使用 webpack 打包 google chrome 扩展 我想将文件夹结构保留在 dist 文件夹中 例如 我想将所有弹出资源打包在dist popup 这是我现在的配置 const path require path const
  • 为什么 Firefox 对“select”标签上的“click”事件的反应与 Webkit 和 IE 不同?

    我意识到 Firefox 对待click事件于
  • 从网站保存嵌入的 pdf

    我正在编写一个小型 C 应用程序来管理供应商提供的 化学品 安全数据表 目前 我手动搜索该化学品并保存 pdf 并在我的程序中添加指向 pdf 的链接 问题是我还有很多化学品需要处理 所以最好将过程自动化 例如 化学品的部件号如下 2710
  • Golang delve,如何启动调试器并启动正在调试的应用程序?

    我正在尝试设置一个可以远程连接的无头深度调试器 我无法找到一种方法来启动调试服务器 而该服务器不会暂停我正在调试的应用程序 我一直在使用dlv attach headless true listen 2345 attach 32但这会暂停该
  • JSON 和 AJAX 与 jQuery 有什么区别?

    我听说 JSON 会序列化所有数据 这可以防止我在跨浏览器支持等方面遇到客户端问题 我一直在使用 AJAX 和 jQuery 这看起来很简单 但我不确定其中的区别 我读过我也可以使用它来获取数据 ajax url url dataType

随机推荐

  • scala:为什么 1/0 是算术异常但 1.0/0.0 = Double.Infinity

    在 Scala 中 整数算术除以零会抛出 a 这似乎不一致java lang ArithmeticException by zero 但是浮点运算 1 0 0 0 返回Double Infinity 我知道从类型的角度来看 同时拥有 Dou
  • 默认函数参数的有效表达式

    函数或成员函数中默认参数的有效表达式有哪些可能类型 在对函数参数类型的变量进行赋值的上下文中任何正确的内容 Edit编译期间的默认参数根据类型正确性等进行评估 但不会计算它们 并且直到运行时才会进行赋值 您可以将尚未定义的类的构造函数指定为
  • 如何根据方法名称动态调用方法? [复制]

    这个问题在这里已经有答案了 当方法的名称包含在字符串变量中时 如何动态调用该方法 例如 class MyClass def foo end def bar end end obj MyClass new str get data from
  • Forth 中的内存管理

    所以我刚刚学习 Forth 很好奇是否有人可以帮助我了解内存管理通常是如何工作的 目前我只有 一些 C 堆栈与堆范例的经验 据我了解 可以在字典中分配 也可以在堆上分配 字典是否像 C 中的堆栈更快 更受欢迎 但与 C 不同的是 它没有作用
  • Excel,将一个范围附加到一列中另一个范围的末尾

    我的 Excel 中有两列数据 我想添加结合第一列和第二列的第三列 如何使用公式执行此操作 以便可以在 A 列和 B 列中添加或删除数据 而无需接触 C 列 Column A Column B Column C Bob Mary Bob J
  • 是否可以使用一行将流收集到两个不同的集合?

    我有以下代码 为了勇敢而简化 public void search Predicate
  • Jenkins 使用 Git 和 Deploy Key 进行构建

    我将 git 插件添加到 Jenkins 中 我已经作为构建服务器上的 jenkins 用户生成了一个公钥 我将此密钥作为部署密钥添加到 github 我添加了带有 jenkins 名称和电子邮件的全局 git 属性 并且电子邮件与公钥末尾
  • 在 Rails 模型中;保存到数据库时,符号会自动转换为 YAML。正确的做法是什么?

    在我的模型示例游戏中 有一个状态列 但我通常通过使用符号来设置状态 例子 self status active MATCH STATUS betting on gt Betting is on home team won gt Home t
  • Firefox 的 execCommand 复制异步替代方案

    document execCommand copy 可以在 Promise 的解析函数中使用 Firefox 除外 Chrome Opera 甚至 Safari 等所有现代浏览器都允许最多 1 秒的异步复制 我想改善用户体验并在剪贴板中计算
  • 使用 HDFS 更改更新 Hive 外部表

    可以说 我从文件 myFile csv 位于 HDFS 中 创建了 Hive 外部表 myTable myFile csv 每天都会更改 那么我也有兴趣每天更新一次 myTable 是否有任何 HiveQL 查询告诉每天更新表 谢谢 P S
  • AddEntityFrameworkStores 只能由派生自 IdentityUser 的用户调用

    我正在尝试为我的网络应用程序创建一些角色 但由于以下原因它并没有真正起作用Tkey exception 如果您投赞成票 我很高兴 这样其他需要帮助的人就可以更多地看到它 我不知道如何解决它 我认为我的 Startup cs 有问题 无论我尝
  • 将其他计费注册字段与 WooCommerce 中的默认 Wordpress 字段同步

    我已将以下代码添加到 Woocommerce 用户注册表中 以获取注册页面上的账单详细信息 现在当新用户注册时会发生什么 名字和姓氏将在账单详细信息数据库以及默认 WordPress 用户帐户中注册 如果用户更新其帐户 wordpress
  • Git 强制覆盖本地跟踪文件,但不覆盖本地未跟踪文件

    我正在一个名为的本地目录中工作p1其中包含一个 git 存储库 添加分支并对添加的分支进行提交后 我制作了目录的副本p1并称之为p2 我的目的是在目录中尝试合并和变基 只是为了学习 p2 同时从p1当我决定如何合并 重新调整我的更改时 但是
  • 插入符号交叉验证中的预处理

    我有一个关于数据预处理的问题需要澄清 据我了解 当我们通过交叉验证调整超参数并估计模型性能时 我们需要在交叉验证中进行 而不是预处理整个数据集 换句话说 在交叉验证中 我们对训练折叠进行预处理 然后使用相同的预处理参数来处理测试折叠并进行预
  • .NET 示例 VCF 阅读器

    有谁知道使用 C NET 从 VCF 文件中提取数据的好示例 内联回复或网络教程 现在还有人用VCF文件吗 对于联系人管理系统来说 这值得吗 让我有点惊讶的是 它没有内置到 NET Framework 的任何地方 但我确实找到了本教程 我计
  • 将 ExpandoObject 持久保存到 MongoDB

    我有一个具有任意数量属性的 ExpandoObject 我想将这些属性作为 BsonDocument 保存到 MongoDB 数据库 我尝试使用以下代码来执行此操作 private BsonDocument GetPlayerDocumen
  • 如何在 onStart() 方法中从 Firebase 远程配置实现 fetch() ?

    我正在尝试实现调用 Firebase 远程配置fetch 中的方法onStart 我以为这会很容易 但经过几次尝试后却发现并非如此 首先 我想尽快检查新的配置值用户打开应用程序 and 超出缓存过期时间 这就是我选择的原因onStart 方
  • 如何禁用/关闭/刷新 couchdb 缓存

    我有一个列表 其中对文档进行了一些基本身份验证 我遇到的问题是列表正在缓存 因此除非我更新修订 ID 否则用户将看不到他们具有访问权限 如何显示非缓存列表 if req userCtx name doc permissions owner
  • 最小化二分图中的交叉数

    在为不相关的东西绘制图表时 我遇到了以下算法问题 我们有一个二部图的平面图 其中不相交的集合按列排列 如图所示 我们如何重新排列每列内的节点以使边缘交叉的数量最小化 我知道这个问题对于一般图来说是 NP 困难的 link http en w
  • 调试使用 ES6 模块的 JavaScript 代码

    TL DR 如何从调试器访问 ES 模块中定义的变量 函数 名称 更多背景信息 我是一位经验相对丰富的 JavaScript 程序员 但对模块还是个新手 我已经按照 MDN 上的教程进行操作 https developer mozilla