关于Angular2中import momentjs问题

在项目中使用到momentjs ,使用npm安装并且在component中import,具体代码

import * as moment from 'moment';

经过webpack的bundle分析功能查看到引用的 moment部分的体积有600K+

clipboard.png
.]

请问有没有按需引用的方式?import的翻译有100多个文件,我一个都没用到,这块怎么去除?

阅读 4k
1 个回答

默认情况下,webpack 会打包所有的 Moment.js 语言环境(在 Moment.js 2.18.1 中,最小为 160 KB)。 若要剥离不必要的语言环境且仅打包使用的语言环境,则添加moment-locales-webpack-plugin

// webpack.config.js
const MomentLocalesPlugin = require('moment-locales-webpack-plugin');

module.exports = {
    plugins: [
        // 剥离除 “en” 以外的所有语言环境。
        new MomentLocalesPlugin(),

        // 或者:剥离除 “en”、“es-us” 和 “ru” 以外的所有语言环境。
        //(“en” 内置于 Moment 中,无法移除)
        new MomentLocalesPlugin({
            localesToKeep: ['es-us', 'ru'],
        }),
    ],
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进