[ webpack | moment ] moment精简打包

moment默认导入,会引入全部的语言资源文件。

而我们最终使用到的语言资源仅仅是其中的一部分。

默认导入打包后文件大小情况:

我们现在的目的是精简左边的 locale 语言资源文件。

方案一:使用 webpack.IgnorePlugin 

1. webpack.config.js

const webpack = require('webpack')

// 其他相关配置已省略
module.exports = {
    plugins: [new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)]
}

或者你使用的是 Vue-cli3.0 脚手架生成的项目

在项目`vue.config.js`(没有则新建)

const webpack = require('webpack')

module.exports = {
    configureWebpack:{
        plugins: [
            new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
        ]
    }
}

打包时忽略/moment/locale/ 文件夹

然后进入你的项目入口配置 moment

import moment from 'moment'
// 你想要的语言
import 'moment/locale/zh-cn' 
import 'moment/locale/ja'

moment.locale('zh-cn')

配置完成后打包:(我要什么语言资源就打了什么进去) 

 方案二:使用 webpack.ContextReplacementPlugin(推荐)

 只需要配置 webpack 插件

const webpack = require('webpack')

module.exports = {
    configureWebpack:{
        plugins: [
            new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /zh-cn|ja/)
        ]
    }
}

配置完成后打包:(和方案一结果一样)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值