我不会将jQuery对象公开给浏览器中开发人员控制台内部可访问的全局窗口对象。现在在我的webpack配置中,有以下几行:
plugins: [ new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }) ]
这些行将jQuery定义添加到我的webpack模块中的每个文件中。但是,当我构建项目并尝试在开发者控制台中访问jQuery时,如下所示:
window.$; window.jQuery;
它说这些属性是不确定的…
有没有办法来解决这个问题?
您需要使用expose-loader.。
npm install expose-loader --save-dev
您可以在需要时执行以下操作:
require("expose?$!jquery");
或者您可以在配置中执行以下操作:
loaders: [ { test: require.resolve('jquery'), loader: 'expose?jQuery!expose?$' } ]
更新 :从webpack 2开始,您需要使用 expose-loader 而不是 expose :
module: { rules: [{ test: require.resolve('jquery'), use: [{ loader: 'expose-loader', options: '$' }] }] }