2017-09-08 86 views
1

我正在開發銷售隊伍的打字稿反應應用程序,並且有一點獨特的工作流程用例。爲了減輕每次更改我的應用程序時的部署負擔,我有一個開關,可以從salesforce頁面的本地主機(由webpack-dev-server提供服務)加載js包。HMR是否可以在遠程服務器上使用資源?

visualforce

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

這個偉大的工程,但它是真的很酷,如果我能利用HMR爲好。這可能嗎?

我已經有HMR在本地資源上工作,但似乎無法從Salesforce中工作。

回答

1

當你HMR它要求兩個文件:

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

如果不能得到這兩個文件它失敗。在請求這些文件時,請檢查您的網絡選項卡中是否沒有404s。

這裏的另一個問題是,如果它需要從遠程服務器獲取文件,那麼該服務器將不在同一個域中,因此CORS將啓動。如果您沒有將CORS頭放在響應中服務器然後請求將失敗。

或者,由於CORS只是由瀏覽器強制執行的,因此您可以在webpack-dev-server上執行一些代理來代理這些文件的請求(如果需要的話)。請參閱https://webpack.js.org/configuration/dev-server/#devserver-proxy

+0

所以我想我可以解決CORS問題,但是我認爲是'something.hot-reload.json'和'something.hot-reload.js'問題。 該URL中的「something」指向遠程服務器,但我認爲它需要指向localhost?無論如何配置這個? – NSjonas

+0

找到正在提供.json和.js文件的位置 - 例如,在瀏覽器中轉到http://localhost/i/think/they/are/here/hot-reload.json - 您應該看到一個JSON文件 - 好吧,現在你知道他們在哪裏...下一步... – danday74

+0

是讓請求去正確的地方 - 我想我的答案是設置公共路徑 - https://webpack.js.org/配置/ dev-server /#devserver-publicpath - 或者你可以在任何需要代理的地方設置一個代理來代理hot-reload.json到localhost的請求(這可能並不容易,我認爲在我的場景中兩臺服務器因爲它是可能的) – danday74

相關問題