signalr.js我總是得到一個消息說:如何加載的WebPack裏面角2
$ .hubConnection不是一個函數
Error: jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file. consoling out "$" and "jquery" is undefined.
什麼我需要做的,讓signalr工作使用webpack?
signalr.js我總是得到一個消息說:如何加載的WebPack裏面角2
$ .hubConnection不是一個函數
Error: jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file. consoling out "$" and "jquery" is undefined.
什麼我需要做的,讓signalr工作使用webpack?
乾淨的解決方案:使用expose-loader !!
npm install expose-loader --save-dev
您vendor.ts內
import 'expose-loader?jQuery!jquery';
import '../node_modules/signalr/jquery.signalR.js';
您webpack.config.ts內
new ProvidePlugin({ jQuery: 'jquery', $: 'jquery', jquery: 'jquery' })
說明: 的jquery.signalR.js腳本確實沒有寫成umd模塊。這使得它默認情況下不會被webpack加載。它不需要jquery,但假設Jquery位於全局變量window.jQuery中。我們可以通過將jquery模塊與expose-loader一起導入來在webpack中完成這項工作。這個加載器將確保jQuery的導出值暴露給jQuery全局變量。從而允許將signalr.js腳本作爲下一個模塊加載。
此外,如果您想通過使用$來使用signalr,您還必須使用jquery模塊的provideplugin。內部webpack.config.js
這可以加載jQuery和signalR,但由於未加載集線器代理,我仍無法調用'$ .connection.myHub'。我怎樣才能實現這一點與webpack? – marsop
使用動態生成的信號/集線器腳本是可選的。目前我不使用它,在我的webpack環境中。 –
使用動態生成的信號/集線器腳本是可選的。我使用** $。hubConnection(this.url)**&** connection.createHubProxy(this.hubName)**,它的工作原理。 –