Javascript 暴露加载程序不';t将修改暴露到暴露对象
我正在使用Webpack2、Bootstrap3和TypeScript,并试图将npm和打包包集成到现有的应用程序中。我正在使用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
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的方法(如bootstrappopover
方法)在我的模块之外的全局范围内可用?我发现了我的问题:
PluginProvider
向应用程序公开的jQuery版本与expose loader
公开的jQuery版本不同。引导程序正在PluginProvider jQuery上初始化,但另一个jQuery实例向窗口公开
为了让它正常工作,删除PluginProvider,只需使用公开加载程序
。然后在需要的地方手动导入jQuery,作为丢失PluginProvider的副作用