请教如何解决引入moment之后默认打包全部语言包的问题

我在项目在使用的datepicker组件,引入了moment,但是我发现在webpack打包之后,它会把moment.js的全部语言包打包进来。
通过webpack visualizer可以看到,就是这个语言包就占用了三百多KB,
请教一下大家,如何在打包中,只打包自己的一个语言包,比如只打包中文的语言包进来。
项目基于react+webpck+antd构建的。
图片描述

阅读 10.3k
3 个回答

通过moment自带的构建工具grunt生成仅包含特定语言包的moment文件,再用webpack引入

git clone https://github.com/moment/moment.git
npm i
grunt transpile:zh-cn //生成moment-with-locales.custom.js

webpack.config.js 配置文件中加上这句

plugins: [
    new webpack.ContextReplacementPlugin(
        /moment[\\\/]locale$/,
        /^\.\/(zh-cn)$/
    ),
    // 其他 plugin...
]
新手上路,请多包涵

我试了下,用这个new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /zh-cn/)可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏