使用webpack.ProvidePlugin时未定义$

时间:2016-12-01 18:02:38

标签: jquery angularjs webpack

我正在尝试将jquery用于webpack,但即使我使用Webpack Provider插件,如:

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

似乎没有将我的jQuery暴露给窗口全局范围。

1 个答案:

答案 0 :(得分:4)

据我了解,ProvidePlugin将这些变量提供给其他WebPacked代码,但不提供外部代码或内联脚本。

'expose-loader'插件交替公开webpacked包之外的全局变量。在规则中添加以下内容,以定义指向捆绑jQuery的全局jQuery和$变量。

rules:[
...
// Expose jquery globally for inline/legacy use
{
    test: require.resolve('jquery'),
    use: [
        { loader: 'expose-loader', options: 'jQuery' },
        { loader: 'expose-loader', options: '$' }
    ]
},
...
]