(一)背景
我们想要在项目中使用 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
这样再一次重新打包,就生效了
主要就是全局配置插件~