$ window.jQuery在3party模块中未定义,但window.jQuery中未定义

时间:2019-01-04 10:19:59

标签: angularjs webpack

在我的webpack-es6-angularjs应用程序中,我遇到一个需要帮助的问题:当尝试加载第3方库时,第3方库会引发错误,即使jQuery是通过webpack公开。

//webpack.config.js
new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery',
    'window.jQuery': 'jquery'
})

第三方库通过!$window.jQuery.support...使用jQuery,但是$window.jQuery不存在–请注意angularjs的额外$ –其中window.jQuery存在于Webpack中,如预期的那样配置。

monkey-patching 3rd-party库可以工作,但是当然没有解决方案。知道这可能来自哪里以及如何解决吗?

1 个答案:

答案 0 :(得分:0)

好的,所以我能够通过将jQuery显式注入angularjs $ window对象来解决它:

import * as jquery from 'jquery';
import { IWindowService } from 'angular';

function jQueryService($window: IWindowService): any {
  $window['jQuery'] = jQuery;

  return jquery;
};

jQueryService.$inject = ['$window'];


export default jQueryService;