Ionic2 离子2信号器错误“;请确保在SignalR客户端JavaScript文件之前引用jQuery。”;

Ionic2 离子2信号器错误“;请确保在SignalR客户端JavaScript文件之前引用jQuery。”;,ionic2,signalr,Ionic2,Signalr,我正在尝试使用离子2应用程序中的信号器。对于信号器,我正在使用 图书馆 Index.html <!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Ionic App</title> <meta name="viewport" content="width=device-width, ini

我正在尝试使用离子2应用程序中的信号器。对于信号器,我正在使用 图书馆

Index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
    <meta charset="UTF-8">
    <title>Ionic App</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">

    <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico">
    <link rel="manifest" href="manifest.json">
    <meta name="theme-color" content="#4e8ef7">

    <!-- cordova.js required for cordova apps -->
    <script src="cordova.js"></script>




    <!-- un-comment this code to enable service worker
    <script>
      if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('service-worker.js')
          .then(() => console.log('service worker installed'))
          .catch(err => console.log('Error', err));
      }
    </script>-->

    <link href="build/main.css" rel="stylesheet">

</head>
<body>

    <!-- Ionic's root component and where the app will load -->
    <ion-app></ion-app>

    <!-- The polyfills js is generated during the build process -->

    <script src="build/polyfills.js"></script>
    <script src="build/main.js"></script>

    <!-- The bundle js is generated during the build process -->
    <!-- Zone.js and Reflect-metadata  -->
    <script src="build/js/Reflect.js"></script>
    <script src="build/js/zone.js"></script>

<!--Below added jquery and signal-->
    <script src="../node_modules/jquery/dist/jquery.js"></script>
    <script src="../jquery.signalR.js"></script>   

</body>
</html>
但这种错误每次都会出现。我已经搜索过了,但没有找到任何解决方案

未捕获错误:未找到jQuery。请确保在SignalR客户端JavaScript文件之前引用jQuery。

注意:我已经厌倦了这个库,但它有一个问题

关于这一点,我只是复制了代码,现在工作正常

import 'expose-loader?jQuery!jquery';
import '../node_modules/signalr/jquery.signalR.js';
关于这一点,我只是复制代码,它现在可以正常工作了

import 'expose-loader?jQuery!jquery';
import '../node_modules/signalr/jquery.signalR.js';

使其工作的唯一方法是将此类代码添加到供应商文件的顶部:

import 'expose-loader?$!expose-loader?jQuery!jquery';
import './node_modules/signalr/jquery.signalR.min.js';
jQuery应该通过别名在全球范围内可用,这就是为什么我在webpack配置中使用explose loader import和ProvidePlugin的原因:

new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery'
})
请注意,您可以对signalR使用jQuery版本2或更高版本


希望这会有所帮助。

我让它工作的唯一方法是在供应商文件的顶部添加这样的代码:

import 'expose-loader?$!expose-loader?jQuery!jquery';
import './node_modules/signalr/jquery.signalR.min.js';
jQuery应该通过别名在全球范围内可用,这就是为什么我在webpack配置中使用explose loader import和ProvidePlugin的原因:

new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery'
})
请注意,您可以对signalR使用jQuery版本2或更高版本


希望这会有所帮助。

尝试将
添加到
部分好的,我正在尝试,会让您know@Dennis1679不,它不起作用。这个错误很明显,因为您正在加载signar/before/jquery。因此,解决方案应该是将jquery标记移动到页面顶部,或者至少在signer之前。也许你可以试试信号器附带的标准脚本。我让您尝试1.6.4,因为我相信它将与您的Signal版本一起工作,但可能不是这样。我可以在您的代码中看到,在Signal脚本之前,您已经有了Jquery,但在我的例子中,我遇到了完全相同的问题。尽管未使用您正在引用的库。我在想,您是否100%确定“./node\u modules/.etc”是您的文件所在的位置?也就是说,文件夹节点\u模块是否位于应用程序的根级别?请尝试将
添加到
部分好的,我正在尝试并将允许您know@Dennis1679不,它不起作用。这个错误很明显,因为您正在加载signar/before/jquery。因此,解决方案应该是将jquery标记移动到页面顶部,或者至少在signer之前。也许你可以试试信号器附带的标准脚本。我让您尝试1.6.4,因为我相信它将与您的Signal版本一起工作,但可能不是这样。我可以在您的代码中看到,在Signal脚本之前,您已经有了Jquery,但在我的例子中,我遇到了完全相同的问题。尽管未使用您正在引用的库。我在想,您是否100%确定“./node\u modules/.etc”是您的文件所在的位置?也就是说,文件夹节点是否位于应用程序的根级别?