webpack 自动引入常用模块

webpack 自动引入常用模块

描述:比如 lodash 这种库,要用时每个 js 文件都需要如下引入

import _ from 'lodash'
console.log(_.join(['1', '2'], '/'))

怎么才能不引入 lodash 也能直接 _.join 等方法来使用 lodash 呢?

方法一: (模块局部引入)

const webpack = require('webpack ')

module.exports = {
	...
	plugins: [
	   ...
	   // ProvidePlugn 会自动在打包好的每一个模块内环境中引入  import _ from 'lodash'
	   new webpack.ProvidePlugin({
		 '_': 'lodash'
       })
    ]
}

但是有时候我需要全局能取到 window._ , 那应该怎么办呢?

方法二: (全局引入)

(1)添加 expose-loader

module.exports = {
	module: {
 		rules: [
   			{
   				test: require.resolve('lodash'),
   				loader: 'expose-loader',
				options: {
					globalName: '_', // 全部变量为 _
					override: true,  // 如果全局有 _ 就覆盖它
				}
   			}
   		]
 	}
}

之后只需要打包入口文件引入一下就可以了:

import _ from 'lodash'
console.log(_.join(['1', '2'], '/'))

(2)添加 expose-loader 行内loader

// 使用 expose-loader 全局变量为 _
let _ = require('expose-loader?exposes=_!lodash')
console.log(_.join(['1', '2'], '/'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值