是否可以对远程服务器上的资源进行 HMR?

Is it possible to HMR a resource on a remote server?

我正在 salesforce 上开发一个 typescript React 应用程序,并且有一些独特的工作流用例。为了减轻每次更改我的应用程序时的部署负担,我有一个开关,可以在我的 salesforce 页面(由 webpack-dev-server 提供服务)中从本地主机加载 js 包。

视觉力量

<apex:outputPanel layout="none" rendered="{!$CurrentPage.parameters.local == '1'}">
    <script src="https://localhost:8080/bundle.js" />
</apex:outputPanel>

这很好用,但如果我也能利用 HMR,那就太棒了。这可能吗?

我已经让 HMR 在本地资源上工作,但它似乎无法在 Salesforce 上工作。

当您使用 HMR 时,它会请求 2 个文件:

  • 某事。hot-reload.json
  • 还有一些东西。hot-reload.js

如果无法获取这两个文件,则失败。请求这些文件时,请检查您的网络选项卡中是否没有出现 404。

这里的另一个问题是,如果它需要从远程服务器获取文件,那么该服务器将不在同一个域中,因此 CORS 将启动。如果你不把 CORS headers 在响应服务器上,则请求将失败。

或者,由于 CORS 仅由浏览器强制执行,如果需要,您可以在 webpack-dev-server 上进行一些代理以代理对这些文件的请求。参见 https://webpack.js.org/configuration/dev-server/#devserver-proxy