chrome 72 更改了源映射行为

2024-04-11

我正在为 Chrome 开发一个 Webextension,代码是用 Typescript 编写的,所以我需要源映射。

该扩展与 ParcelJS 捆绑在一起,但我相信我的问题与捆绑器无关。

从 Chrome 70 更新到 72 后,源映射不再起作用。作为一个最小的示例,我可以使用以下代码在 MacOS 14 和 Ubuntu 18.04、Chrome 72 上重现该问题。

这个问题似乎只存在于 Chrome 72 中。不幸的是,在撰写本文时,这是当前的稳定版本:

  • 版本73.0.3683.27(官方版本)测试版(64位),没问题
  • 版本71.0.3578.98(官方构建)稳定Chromium 64位,没问题
  • 版本 72.0.3626.96(官方版本)(64 位),不起作用

为了方便起见,我建立了一个 github 存储库。克隆它并运行以下命令(抱歉,我不确定您是否需要全局安装包捆绑器。为了方便起见,我总是这样做)

git clone https://github.com/lhk/contentscript_smap.git
cd contentscript_smap
# npm install -g parcel-bundler 
npm install -d
parcel build manifest.json

要遵循 Stackoverflow 规则(如果您链接到代码,您还应该将其包含在您的问题中,该链接可能会在某个时候断开):

内容.ts:

console.log('log from typescript')

清单.json:

{
    "manifest_version": 2,
    "name": "sourcemaps messed up",
    "version": "0.0.1",
    "description": "",
    "author": "",
    "content_scripts": [
        {
            "matches": [
                "<all_urls>"
            ],
            "js": [
                "./content.ts"
            ]
        }
    ],
    "permissions": [
        "activeTab",
        "<all_urls>"
    ]
}

包.json:

{
  "name": "contentscript_smap",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/lhk/contentscript_smap.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/lhk/contentscript_smap/issues"
  },
  "homepage": "https://github.com/lhk/contentscript_smap#readme",
  "dependencies": {
    "parcel-bundler": "^1.11.0",
    "parcel-plugin-web-extension": "^1.5.1",
    "typescript": "^3.3.3"
  }
}

Parcel 将捆绑扩展并生成dist/文件夹,您可以从那里将其安装在 Firefox 和 Chrome 中。

Firefox 运行良好(查看源代码参考内容.TS ):

Chrome 找不到源映射:

这不仅仅是控制台简单地显示编译后的源代码而不是源映射的原始源代码。我在 Chrome 中根本找不到 typescript 代码。


对我来说,这就是解决问题的方法。

  1. Change devtool : "source-map" -> "eval-source-map" in 网页包配置 with mode : "development".

  2. Add "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'" in 清单.json

除此之外,还要确保您通过单击将源文件夹(不是由 webpack 生成的 dist )与 chrome devtools 链接将文件夹添加到您的工作区 in the Chrome 开发者工具 -> 来源 -> 文件系统.

恐怕我没有足够的时间来深入研究如何解决这个问题。也许我稍后会用正确的推理来更新答案。

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

chrome 72 更改了源映射行为 的相关文章

  • HTML 嵌入对象具有灰色背景。可以透明吗?

    我使用带有开源插件的 Firefox 来播放视频 视频被 尽可能好地 缩放以适应嵌入对象的宽度和高度中定义的可用空间 但有时右侧和 或底部会有一点灰色边框 看来这不是我的父 div 的背景颜色 因为更改它根本没有效果 这是 HTML div
  • 按列分组的数据帧上 R 中的行之间的差异

    我希望通过 app name 获得不同版本的计数差异 我的数据集如下所示 app name version id count difference 这是数据集 data structure list app name structure c
  • 在应用程序的所有活动中重用操作栏

    我创建了一个 MenuActivity 它有一个操作栏和一个拆分操作栏 我想将此操作栏和 splitactionbar 视图用于我的应用程序中的所有活动 我是 android 的新手 所以有人可以逐步指导我 另外 我试图将搜索图标放在操作栏
  • 每次在我的 AWS SQS 目标上推送通知时如何触发事件?

    我正在将 AWS SQS 用于 Amazon MWS 订单 API 每当有人从已将我添加为其开发人员的卖家帐户订购时 亚马逊都会将通知发送到我的 AWS SQS 应用程序 我可以从那里提取通知 但为此 我必须创建一个调度程序来提取通知 我是
  • 如何防止 Safari 滚动溢出:隐藏的 iframe?

    使用 Safari 您可以通过设置 style overflow hide 来禁用大多数 iframe 滚动 在 iframe 上 但是 如果您单击 iframe 并移动鼠标 内容无论如何都会滚动 Example 滚动内容 html
  • 在 WPF 树视图中获取 FullPath?

    如果我以编程方式创建 WPF TreeView 例如 TreeView treeView lt added in the designer TreeViewItem rootNode new TreeViewItem rootNode He
  • 安装 APK 时出现会话“应用程序”错误

    我在将 Android Studio 1 1 编写的项目导入 Android Studio 2 1 2 时遇到困难 每当在平板电脑上测试应用程序之前构建 gradle 时 我都会收到此错误 下面是错误的屏幕截图 有谁知道是什么问题 我尝试过
  • 为什么我们不能在函数式接口中重载抽象方法? (爪哇)

    所以我熟悉java中的函数式接口 以及它们与lambda表达式的使用 一个函数式接口只能包含一个抽象方法 当从 lambda 表达式使用这一孤独方法时 您不需要指定其名称 因为接口中只有一个抽象方法 编译器知道这就是您正在引用的方法 Exa
  • 如何在Asp.Net Core中自定义开发者异常页面?

    这常见于ConfigureStartup cs 文件的方法具有如下所示的代码 if env IsDevelopment app UseDeveloperExceptionPage new DeveloperExceptionPageOpti
  • 重定向到破折号中的 url

    我正在使用 dash 构建一个仪表板 每当单击特定数据点时 我都会创建一个唯一的 url 如何将用户重定向到此创建的 url 我正在使用下面给出的代码 每当有人单击任何数据点时 单击事件就会触发并执行回调函数 app layout html
  • RetentionPolicy CLASS 与 RUNTIME

    两者之间有什么实际区别RetentionPolicy CLASS and RetentionPolicy RUNTIME 看起来两者都被记录到字节码中 并且无论如何都可以在运行时访问 无论如何 两者都可以在运行时访问 那不是那个javado
  • 扁平化/反规范化 SQL 查找表的最佳方法?

    我有很多这样的表 Lookup HealthCheckupRisks ID Name 1 Anemia 2 Anorexic 3 Bulemic 4 Depression 122 Syphilis PatientRisksOnCheckup
  • 如何将 c_uint 的 ctypes 数组转换为 numpy 数组

    我有以下 ctypes 数组 data ctypes c uint 100 我想创建一个 numpy 数组np data包含来自 ctypes 数组数据的整数值 ctypes 数组显然稍后会填充值 我看到numpy中有一个ctypes接口
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger
  • 在应用程序内核中找不到 FOSUserBundle

    我在 Windows 上使用 symfony 并尝试按照官方文档中的描述配置 FOSUserBundle 尝试更新架构时出现此错误 Class FOS UserBundle FOSUserBundle not found in app Ap
  • 如何通过API集成keycloak短信验证?

    我有一个 keycloak 服务器和使用自定义 KeycloakProvider 的 Laravel 应用程序 public function loginByEmail string email string password SsoTok
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • C++20 范围太多 |运营商?

    我在这段代码中使用 g 10 2 有谁知道为什么我最后收到编译器错误std views reverse on results3 include
  • Swift - 在 TableView 单元格中使用步进器递增标签

    这里又是一个 Swift 初学者 我只是想在每个 TableView 单元格中使用一个步进器来增加同一单元格中的标签 我发现了关于这个主题的几个问题 但它们包含其他元素 我无法提取基本概念 Swift Stepper Action 更改同一
  • 为什么 DbSet 不是协变的?

    我有一个工厂函数来返回DbSet Of IItemType 实际的返回类型始终是一个实现IItemType 例如DbSet Of CategoryType 我认为泛型支持协方差 并且此方法可以正常工作 但是当我尝试运行代码时出现异常 无法转

随机推荐

  • UglifyJS 属性修改

    根据文档 UglifyJS 可以修改除提供的保留列表中的属性名称之外的所有属性名称 是否可以用其他方式做到这一点 这样只有提供的列表上的属性才会被破坏 如果是这样 我需要传递哪些选项uglify minify files 实现您正在寻找的白
  • 批量格式化文件日期YYYYMMDD

    我一直在处理批处理文件中的一些代码 用于评估两个文件日期 如果一个日期大于另一个日期 则会运行另一个 bat 文件 我想要做的是将两个日期格式化为 YYYYMMDD 以便我可以使用GTR 比 更棒 代码如下 但如果我使用它就可以工作 equ
  • 描述时间序列 pandas 中的间隙

    我正在尝试编写一个函数 该函数采用连续的时间序列并返回一个数据结构 该数据结构描述数据中任何缺失的间隙 例如带有 开始 和 结束 列的 DF 对于时间序列来说 这似乎是一个相当常见的问题 但是尽管使用了 groupby diff 等 并进行
  • CSS 通过舷窗查看

    我正在尝试使用 CSS 创建一个 舷窗 当我说舷窗时 我的意思是使屏幕的一部分透明 这样您就可以看到舷窗后面的任何内容 仅此而已 我能够通过将主体的背景颜色设置为与前景色相同 然后使用具有圆形渐变的舷窗图像来获得我想要的效果 中间为白色 边
  • Visual Studio 2010 - 半透明浮动窗口

    是否可以在 Visual Studio 2010 中使浮动窗口半透明 我希望能够浮动编辑器窗口并降低其 Alpha 级别 可以使用修改股票编辑器窗口的扩展来创建此功能吗 如果不是扩展 是否有合适的第三方应用程序能够修改 Visual Stu
  • Android进度条嵌入在ui中而不是对话框中

    有没有一种方法可以在不使用对话框的情况下将进度条嵌入到 UI 中 不是以编程方式 而是使用布局 xml 文件 我猜它必须是某种动画或 可绘制 您可以使用ProgressBar widget
  • scala.ScalaReflectionException: 不是一个术语

    我在 Spark 中有以下代码 rdd map processFunction saveToCassandra keyspace tableName Where def processFunction src String Seq Any
  • 获取令牌身份验证视图时出现 Django REST HTTP 400 错误

    我想在后端使用 Django 和 Django REST 框架来对本机 android 应用程序上的用户进行身份验证 我目前正在使用基于令牌的身份验证系统 更多细节 http www django rest framework org ap
  • 将 webmock 与黄瓜一起使用

    我正在使用 webmock 但它不适用于黄瓜测试 在我的 Gemfile 中 gem vcr gem webmock 在我的 features support env rb 中 我有 require webmock cucumber Web
  • 为什么我无法将边框应用到有角度的垫表行?

    我有一个简单的角度材料表 table table
  • 如何将 raku -e 和 -n 与多个文件 glob 一起使用

    我想在 Windows 上的 raku 中执行以下操作 raku n e say if mydatabegin file 无法打开文件 C file 参数无效 glob 不被解释为 glob 我认为这是因为 Windows 要求你的程序自己
  • 将整数静态转换为指针类型

    我只是不知道如何在 C 中编译这个简单的示例 class C public static const void noop static cast
  • node-sass-middleware 只提供一次 css 文件

    我使用 Jade 和 Sass 制作了一个非常简单的 Express 网站 但是我的 node sass 中间件遇到了问题 我的服务器只提供一次 CSS 文件 然后为每个后续请求返回 404 我必须重新启动服务器才能暂时修复它 这是我的代码
  • 在 WPF 动画中,将属性 BeginTime 设置为静态资源

    我想要做的是使用资源定义我的动画的所有开始时间 例如 我想要
  • 重写问题 - L(ast) 不被尊重?

    所以我正在为一个网站开发 CSS JS 压缩系统 该系统基本上具有以下 htaccess RewriteEngine On RewriteRule css images images site 1 QUERY STRING L Rewrit
  • 多线程应用程序中的异常。

    我从一位非常有洞察力的人那里听说 线程中抛出 而不是捕获 的异常正在传播到父线程 真的吗 我尝试过类似的操作 但无法捕获创建线程中的异常 static void Main string args ParameterizedThreadSta
  • MySQL 5.7 innoDB集群中的一个节点崩溃并且无法将崩溃的节点重新加入集群

    我们的一个环境中有一个 MySQL innodb 集群 集群中的一个节点崩溃了 虽然我们能够使崩溃的节点联机 但无法将其加入集群 有人可以帮助恢复 恢复节点并将其加入集群吗 我们尝试使用 dba rebootClusterFromCompl
  • SMTP 客户端在本地主机上发送消息失败,在远程主机上成功

    我有一个小型 tcp 服务器 除其他外 还用于通过 SMTP 服务器发送邮件 问题是 当我在开发计算机 到 smtp 服务器的远程连接 上运行它时它可以正常工作 但是当我在与 SMTP 服务器 Windows Server 2008 R2
  • 本地语句输出与调用命令输出非常不同

    直接登录到系统 我运行此语句 并得到以下输出 Get ClusterNetwork cluster backups role None 这是完美的 甚至美丽 因为它的简单 然而 当我使用 invoke command 从远程计算机运行完全相
  • chrome 72 更改了源映射行为

    我正在为 Chrome 开发一个 Webextension 代码是用 Typescript 编写的 所以我需要源映射 该扩展与 ParcelJS 捆绑在一起 但我相信我的问题与捆绑器无关 从 Chrome 70 更新到 72 后 源映射不再