[英]Webpack: Is it possible to evaluate javascript expression at compile time?
我正在嘗試為我的項目設置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立即評估?
或者有人可以更好地解決我的問題?
您應該能夠使用Webpack的DefinePlugin
在編譯時設置語言。
例如,您可以將您的要求寫為:
var l10n = require('./lang/' + APPLICATION_LANGUAGE);
並在您的配置中,有
plugins: [
new webpack.DefinePlugin({
APPLICATION_LANGUAGE: JSON.stringify(lang)
})
]
您可以根據某些參數或env變量或其他內容有條件地設置構建腳本“lang”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.