先看现象:
上图中的问题是:在同一个组件,中文和英文混合出现。
出现该问题的原因主要有两个:1、没有正确设置moment语言包;2、有两个版本共存的moment。
第一个就不细说,只需在入口文件引入语言包即可,至于为啥要引入,一般是因为很多项目并不需要国际化,在webpack打包时,设置了new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),防止语言包过大。因此需要手动引入需要的语言包import 'moment/locale/zh-cn'; moment.locale('zh-cn');
第二个,为啥会出现两个版本的moment,造成的原因主要是涉及到引入其他npm包,本项目工程的moment版本与引入的其他npm包的moment版本不一致导致。
如果存在自己维护的两个项目,其中一个是npm 包,日期类组件在npm包中,则需要在npm包中也需要引入对应的语言包,否则webpack打包npm项目时,无法获取正确的语言