Javascript 暴露加载程序不';t将修改暴露到暴露对象

Javascript 暴露加载程序不';t将修改暴露到暴露对象,javascript,twitter-bootstrap,typescript,twitter-bootstrap-3,webpack,Javascript,Twitter Bootstrap,Typescript,Twitter Bootstrap 3,Webpack,我正在使用Webpack2、Bootstrap3和TypeScript,并试图将npm和打包包集成到现有的应用程序中。我正在使用ProvidePlugin使jQuery可用,并使用expose loader将jQuery公开给外部依赖项 (任何(全局)。$=global.jQuery=$;或网页模块:{rules[{}]}配置的组合都不起作用,但最终我实现了以下功能: plugins: ([ // make sure we allow any jquery usages outside

我正在使用Webpack2、Bootstrap3和TypeScript,并试图将npm和打包包集成到现有的应用程序中。我正在使用
ProvidePlugin
使jQuery可用,并使用
expose loader
将jQuery公开给外部依赖项

(任何
(全局)。$=global.jQuery=$;
或网页
模块:{rules[{}]}
配置的组合都不起作用,但最终我实现了以下功能:

plugins: ([
    // make sure we allow any jquery usages outside of our webpack modules
    new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        jquery: "jquery",
        "window.jQuery": "jquery",
        "window.$": "jquery"
    }),
]),
entry.ts:

import "expose-loader?$!jquery"
import "expose-loader?jQuery!jquery"
但是,当我尝试调用
import“bootstrap”
时,我可以在我的模块内调用
$(…).popover()
,我可以在模块外调用
$(…)
jQuery(…)
,但我不能在模块外调用
$(…).popover
,而是出现以下错误:

未捕获的TypeError:$(…)。popover不是函数

如何使添加到jQuery的方法(如bootstrap
popover
方法)在我的模块之外的全局范围内可用?

我发现了我的问题:
PluginProvider
向应用程序公开的jQuery版本与
expose loader
公开的jQuery版本不同。引导程序正在PluginProvider jQuery上初始化,但另一个jQuery实例向
窗口公开

为了让它正常工作,删除PluginProvider,只需使用
公开加载程序
。然后在需要的地方手动导入jQuery,作为丢失PluginProvider的副作用