Javascript 如何将jQuery导入Angular 2+;中的jQuery插件网页包/CLI

Javascript 如何将jQuery导入Angular 2+;中的jQuery插件网页包/CLI,javascript,jquery,angular,webpack,angular-cli,Javascript,Jquery,Angular,Webpack,Angular Cli,我正在尝试将jQuery插件导入到单个Angle组件中。它可以在其他浏览器中运行,但IE 11会阻塞它: SCRIPT1002: Syntax error main.bundle.js (1376,1) 当我单击错误时,它会显示有问题的行: eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_

我正在尝试将jQuery插件导入到单个Angle组件中。它可以在其他浏览器中运行,但IE 11会阻塞它:

SCRIPT1002: Syntax error
main.bundle.js (1376,1)
当我单击错误时,它会显示有问题的行:

eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery__ = __webpack_require__(\"../../../../jquery/dist/jquery.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_jquery__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(\"../../../core/esm5/core.js\");\n// require('jquery');\n\n\n\n/*\ndjaodjin-annotate.js...
这还不是全部,但似乎与导入jQuery有关,事实上,当我删除jQuery导入时,它运行良好

问题可能是我正在将jQuery导入一个JavaScript(.js)文件,这是一个jQuery插件。以下是它的简化版本:

import * as jQuery from 'jquery';

(function($) {
  'use strict';

  function Annotate(el, options) {
    this.init();
  }
  Annotate.prototype = {
    init: function() {
      console.log('It\'s working.');
    },
  };
  $.fn['annotate'] = function() {

    const annotate = new Annotate($(this));

    return annotate;
  };
})(jQuery);
如果我不能将jQuery导入到jQuery插件中,我如何使用jQuery插件?有办法解决这个问题吗


顺便说一句,我只在一个组件中使用jQuery。应用程序的其余部分都是干净的。

我想说,您不需要在插件中导入jQuery;您的插件应该假设jquery已经包含在内,如果没有,则会失败

您可以将jquery(首先)然后插件文件包含到项目中。然后在组件中声明jquery

declare let $ : any;
并实例化您的插件,如

$('div').annotate();

我实际上发现我的jQuery插件有错误。它有几行ES6语法,IE不喜欢。但当Webpack编译它时,它会将整个内容转换成一个字符串,全部在一行中。在运行时,它会对字符串运行
eval()
。因此,您不会收到带有行号的有价值的错误消息。它只是给了你我犯的愚蠢的错误。但我认为大卫有一个很好的观点。我们可能不需要导入jQuery