小编col*_*n8r的帖子

是否有浏览器 API 来获取页面资源列表?

我正在研究远程 JavaScript 调试器和页面检查器。我试图找到一种方法来以编程方式获取页面加载的所有页面资产(样式表、脚本、图像、字体等)的列表,并将它们传递给远程检查器。我希望能够在检查员端编辑资产并将它们传递回客户端。最后,我想在页面加载后强制重新加载资源(例如重新加载样式表)。

是否有任何浏览器 API 或 JavaScript 技术可以做到这一点?

我可以想到两种方法:

  1. 使用window.performance获得的资产清单。但是,不包含资源内容,并且依赖于解析 URL 来确定它是资源的类型。我不确定它是否也包含 CSS 图像之类的内容。
  2. 抓取/解析页面的<style><script><img>标签并查看 CSS 以获取其他资源。非常劳动密集且容易出错,我仍然不知道它包含资源内容。

关于如何做到这一点的任何建议?

html javascript dom javascript-debugger

7
推荐指数
1
解决办法
1478
查看次数

如何强制npm将依赖项的依赖项解析为其他程序包?

TL; DR:如何将我的程序包的依赖项之一更改为其他程序包?例如,我想将Package A的依赖关系Package B更改为Package C,但仅对于Package A(即,我不想在上游更改Package A的依赖关系)。


我正在为Leaflet编写插件。Leaflet可作为NPM软件包使用(完成后,我的插件也将提供)。我的插件扩展了另一个插件Esri-Leaflet,它具有Leaflet作为依赖项。

我的插件使用Mocha / Chai / Sinon作为我的代码的测试框架。在开发过程中以及作为CI的一部分,我都使用NPM脚本运行这些测试。

当我运行依赖Leaflet的测试时,我会遇到很多错误,因为不幸的是,Leaflet依赖于无头节点环境(例如window)中不可用的全局变量。幸运的是,有人向我建议了一个名为leaflet-headless的替代软件包它可以解决这些问题(看看您是否好奇,这很有趣)。

有没有一种方法可以让NPM在解决Esri-Leaflet的依赖项时使用Leaflet无叶的intead?也就是说,我要么想删除下游的Leaflet依赖项(因为我的项目已经依赖无叶的),要么将其更改为无叶的。

我看过了npm shrinkwrap,但似乎只能指定版本号,而不能更改实际的软件包依赖项。

如果NPM无法执行我要的功能,您可以推荐替代解决方案吗?我已经在探索解决对上游Leaflet依赖的问题,以消除对无叶传单的需求。

node.js npm leaflet

5
推荐指数
1
解决办法
614
查看次数

标签 统计

dom ×1

html ×1

javascript ×1

javascript-debugger ×1

leaflet ×1

node.js ×1

npm ×1