18、webpack优化(3)——IgnorePlugin

IgnorePlugin

  1. 这是webpack内置插件
  2. 这个插件的作用是:忽略第三方包指定目录,让这些指定目录不要被打包进去

举例:

moment包

比如我们要使用moment这个第三方依赖库,该库主要是对时间进行格式化,并且支持多个国家语言。

moment包打包的问题

假设我们的代码值引入了以下一个API

import moment from 'moment'

//设置语言
moment.locale('zh-cn');
let r = moment().endOf('day').fromNow();
console.log(r);

这样打印出来的就是中文的时间,因为我在使用这个API的时候,前面设置了语言类型moment.locale为中文zh-cn。

但是,虽然我设置了语言为中文,但是在打包的时候,是会将所有语言都打包进去的。这样就导致包很大,打包速度又慢

所以,最好能够少打包一些没用的依赖目录进去

而moment的包含’./locale/‘该字段路径的文件目录就是各国语言的目录,比如’./locale/zh-cn’就是中文语言

IgnorePlugin的使用
  1. 该插件能够使得指定目录被忽略,从而使得打包变快,文件变小
  2. 使用方法:
let Webpack = require('webpack');
plugins:[
	new Webpack.IgnorePlugin(/\.\/locale/,/moment/),//moment这个库中,如果引用了./locale/目录的内容,就忽略掉,不会打包进去
]
  1. 问题存在与解决

我们虽然按照上面的方法忽略了包含’./locale/'该字段路径的文件目录,但是也使得我们使用的时候不能显示中文语言了,所以这个时候可以手动引入中文语言的目录

import moment from 'moment'

//设置语言

//手动引入所需要的语言包
import 'moment/locale/zh-cn';

moment.locale('zh-cn');

let r = moment().endOf('day').fromNow();
console.log(r);

这样就OK了。既能够显示中文,又把不必要的语言包都忽略打包了

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值