【发布时间】:2014-10-12 14:37:24
【问题描述】:
当您使用 webpack 时,有什么方法可以阻止 moment.js 加载所有语言环境(我只需要英语)?我正在查看源代码,似乎如果为 webpack 定义了 hasModule,那么它总是尝试在每个语言环境中使用 require()。我很确定这需要一个拉取请求来修复。但是有什么办法可以通过 webpack 配置解决这个问题?
这是我加载 momentjs 的 webpack 配置:
resolve: {
alias: {
moment: path.join(__dirname, "src/lib/bower/moment/moment.js")
},
},
然后在任何我需要它的地方,我只需要require('moment')。这可行,但它在我的包中添加了大约 250 kB 的不需要的语言文件。另外我正在使用momentjs和gulp的凉亭版本。
另外,如果 webpack 配置无法解决这个问题,这里是 a link to the function where it loads the locales。我尝试将&& module.exports.loadLocales 添加到if 语句中,但我猜webpack 实际上并不能以这样的方式工作。无论如何,它只是requires。我认为它现在使用正则表达式,所以我真的不知道你会如何修复它。
【问题讨论】:
-
您是否尝试过使用时刻通过
nmp而不是bower? -
我的所有客户端库都使用 bower,所有构建工具都使用 npm。我想保持这种方式,因为我的项目是如何布局的。另外,如果您查看github.com/moment/moment/issues/1866 的最后回复,我解决了我自己的问题,但它需要对源代码进行少量编辑。我仍然不知道如何以正确的方式解决这个问题,因为我不知道如何区分 node 和 webpack。
标签: javascript gulp momentjs webpack