【发布时间】:2015-05-16 05:37:54
【问题描述】:
我正在尝试为我的项目设置 webpack。 该项目足够大,并以多种语言提供。 我希望我的每个入口点都以每种语言作为单独的文件提供。我的语言文件不仅仅是纯 JSON,而是 JavaScript。所以 i18n 插件不符合我的需求。
解决办法好像和i18n插件差不多:
var languages = ['en', 'fr', 'de'];
module.exports = languages.map(function (lang) {
return {
name: lang,
// some other language-dependent config
}
})
然后在我的一些脚本中,我需要本地化文件,使用环境变量:
var lang = ...; // some environment variable, available only at compile time
var l10n = require('./lang/' + lang);
但默认情况下,webpack 会尝试将该表达式存储在括号之间,假设稍后在浏览器中对其进行评估。
那么有没有办法告诉 webpack 立即评估呢?
或者也许有人对我的问题有更好的解决方案?
【问题讨论】:
-
也许您正在寻找像 Grunt 这样的构建工具?
-
任务运行器如何帮助解决这个问题?
-
听起来您想遍历一些 Javascript 数据结构并基于该迭代创建单独的构建。一个可编程的构建工具,它可以读取 JSON 文件,并且可以编程为几乎任何听起来它都可以做到的事情。只是想帮忙。
-
@jfriend00 感谢您的帮助。是的,问题是项目包含很多本地化文件,但入口点很少。因此,一个工具应该知道根据项目代码库中的 require 函数调用在哪里加载哪个本地化文件。将尝试更深入地编写 webpack 插件和加载器。再次感谢:)
-
既然你说语言是在编译时,你的意思是你想基本上为你的主要空点创建不同的版本,每种语言都有一个?
标签: javascript node.js bundling-and-minification webpack