1. 通过expose-loader进行全局变量的注入
  2. 可以使用内置插件webpack.ProvidePlugin对每个模块的闭包空间,注入一个变量自动加载模块,而不必到处importrequire

expose-loader 将库引入到全局作用域

安装

  1. npm i expose-loader -D

配置 loader

  1. module: {
  2. rules: [
  3. {
  4. test: require.resolve('jquery'),
  5. use: {
  6. loader: 'expose-loader',
  7. options: '$'
  8. }
  9. }
  10. ]
  11. }

:::warning require.resolve()用来获取模块的绝对路径,所以这时的loader只会作用于jQuery模块,并且只在bundle使用到它时,才进行处理。 :::

webpack.ProvidePlugin 将库自动加载到每个模块(推荐)

引入 webpack

  1. const webpack = require('webpack')

创建插件对象

要自动加载 jquery, 我们可以将两个变量都指向对应的 node 模块。

  1. new webpack.ProvidePlugin({
  2. $: 'jquery',
  3. jQuery: 'jquery'
  4. })