我正在研究远程 JavaScript 调试器和页面检查器。我试图找到一种方法来以编程方式获取页面加载的所有页面资产(样式表、脚本、图像、字体等)的列表,并将它们传递给远程检查器。我希望能够在检查员端编辑资产并将它们传递回客户端。最后,我想在页面加载后强制重新加载资源(例如重新加载样式表)。
是否有任何浏览器 API 或 JavaScript 技术可以做到这一点?
我可以想到两种方法:
window.performance获得的资产清单。但是,不包含资源内容,并且依赖于解析 URL 来确定它是资源的类型。我不确定它是否也包含 CSS 图像之类的内容。<style>、<script>、<img>标签并查看 CSS 以获取其他资源。非常劳动密集且容易出错,我仍然不知道它包含资源内容。关于如何做到这一点的任何建议?
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依赖的问题,以消除对无叶传单的需求。