通过ChromeDev Tools从本地站点劫持脚本的本地开发人员

时间:2019-01-11 13:45:27

标签: javascript google-chrome google-chrome-devtools client-side-scripting

尝试为没有开发人员站点选项的客户端开发人员创建一个更简单的dev-test-prod工作流程。

我有一个实时站点,在该站点中,我只能通过基于浏览器的界面(例如Wordpress / Shopify / etc)将脚本添加到HEAD。使用此选项,我可以通过添加对托管在我管理的CDN(已启用CORS)的CDN中的JavaScript包(使用webpack4创建)的引用来部署可运行的客户端应用程序。没有开发站点。当我想对应用程序进行更改时,我一直在将这些更改部署为生产中的测试。为了避免对用户造成重大影响,我会反复进行非常小的更改,以便快速回滚。

我想做的就是找到一种方法来更改我的体验,以便就我的体验而言,在使用实时网站时,我劫持了对特定JS文件的请求。

我尝试使用Chrome的本地工作区和脱机文件功能,但是遇到了Webpack生成的JS文件无法从本地环境加载而出现CORS错误的问题。但是,其他脚本也可以正常加载。

具体来说:我有三个文件,alpha.js,beta.bundle.js和charlie.bundle.js ...后两个是webpack捆绑包,“ alpha”文件是一个普通的JS文件,可在全局范围(类似于Google Analytics(分析)脚本的操作)。这三个都是从同一CDN托管和加载的。我可以正常使用Chrome的脱机文件和劫持alpha.js,但beta和charlie捆绑包会报告CORS问题。

两个问题:(1)为什么webpack捆绑会导致CORS问题而alpha.js文件没有&&(2)对于我要实现的目标,是否有更好的选择(而无需创建开发站点,是没有选择的)?

1 个答案:

答案 0 :(得分:0)

Local Overrides应该可以解决问题。

请查看其他Stack Overflow answer,在这里我将说明如何设置覆盖以及它们如何工作。

启用替代功能后,您需要将alpha.jsbeta.bundle.jscharlie.bundle.js放到“替代”文件夹中。我认为文件的路径必须与生产环境中指定的路径相同。