簡體   English   中英

Webpack:可以在編譯時評估javascript表達式嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM