(一)背景
我们想要在项目中使用 jquery 这个插件
main.js:将body背景颜色设置为green
import $ from 'jquery'
import { ui } from './part.js'
$('body').css('background', 'green')
ui()
part.js:
没有引入 jquery,直接使用$符号
export function ui () {
$("div").css({"background":"yellow","font-size":"200%"});
}
进行打包后,我们知道part.js 中的代码是不生效的,因为没有引入jquery,所以不能使用它的$
在 webpack 背后的整个概念是让前端开发更加模块化。也就是说,需要编写具有良好的封闭性、彼此隔离的模块,以及不要依赖于那些隐含的依赖模块(例如,全局变量)
一些第三方的库(library)可能会引用一些全局依赖(例如 jQuery 中的 $)。这些库也可能创建一些需要被导出的全局变量。这些“不符合规范的模块”就是 shimming 发挥作用的地方。
但是,如果我想注册全局插件怎么办呢?
(二)全局配置
在 webpack.config.js 中
const webpack = require('webpack');
plugins: [
new webpack.ProvidePlugin({
$: 'jquery'
})
]
将全局的$代理成jquery
这样再一次重新打包,就生效了
主要就是全局配置插件~