【发布时间】:2017-09-23 00:29:16
【问题描述】:
使用 Webpack 2.3.3 和 Babel-loader
我是使用 Webpack 的新手,我正在尝试使用 webpack 捆绑 angular-i18n 语言环境文件。我有一个配置对象,列出了应用程序支持的语言环境。例如:
var supportedLocales = {
'FR': {
currency: 'EUR',
id: 'fr-fr'
},
'GB': {
currency: 'GBP',
id: 'en-gb',
},
'US': {
currency: 'USD',
id: 'en-us'
}
}
当我安装 angular-i18n 库时,它会输出 node_modules/angular-i18n/ 目录中的所有语言环境。例如:
node_modules/
|_ angular-i18n/
|_ angular-locale_en-gb.js
|_ angular-locale_en-us.js
|_ angular-locale_fr-fr.js
|_ ...
webpack.config.js(为发布而简化)
module.exports = {
context: path.join(config.appDir, '/client/assets'),
entry: {
main: [
'./js/index.js'
]
},
plugins: [
new webpack.DefinePlugin({
'SUPPORTED_LOCALES': JSON.stringify({
supportedLocales
})
}),
module: {..etc}
};
- 有没有办法根据
supportedLocales动态加载这些特定的角度语言环境文件并将其包含在main.js包中?例如:
index.js
// This doesn't work
_.each(SUPPORTED_LOCALES, function(locale) {
require(`angular-i18n/angular-locale_${locale.id}`);
})
- 是否可以仅捆绑这些特定的 angular-locale 文件并将其作为新文件
locales.js包含在应用运行时?
任何帮助将不胜感激。
【问题讨论】: