HMR是否可以作为远程服务器上的资源?

时间:2017-09-08 05:58:01

标签: webpack salesforce webpack-hmr react-hot-loader

我正在开发salesforce上的打字稿反应应用程序,并且有一些独特的工作流程用例。为了在每次对我的应用程序进行更改时轻松减轻部署负担,我可以在salesforce页面(由webpack-dev-server提供)中从localhost加载js包。

visualforce

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

这很好用,但如果我也可以利用HMR那真的很酷。这可能吗?

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

1 个答案:

答案 0 :(得分:1)

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

  • something.hot-reload.json
  • and something.hot-reload.js

如果无法获取这两个文件,则会失败。在请求这些文件时,请检查网络选项卡中没有404。

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

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