簡體   English   中英

Webpack的define插件:變量未定義

[英]Webpack's define plugin: variable is not defined

我正在嘗試使用Webpack的DefinePlugin將一些與環境相關的變量傳遞到我的React組件中。 客戶端部分效果很好,服務器端部分返回“未定義MYVARIABLE”。

我正在使用Webpack的Node.JS api。 重要部分如下。 難道我做錯了什么? 謝謝

webpack.config.js

...
webpackConfig.plugins = [
  new webpack.DefinePlugin({
    MYVARIABLE: 'test-value'
  })
]
...

server.js

...
import webpack from 'webpack'
import webpackConfig from '../config/webpack.config'
...
var compiler = webpack(webpackConfig)
...

組件文件

...
console.log(MYVARIABLE)
...

結果

ReferenceError: MYVARIABLE is not defined
....

您必須JSON.stringify('your-value')。

根據https://webpack.js.org/plugins/define-plugin/

因為該插件會直接替換文本,所以為其提供的值必須在字符串本身內部包含實際引號。 通常,這可以通過使用備用引號(例如““ production”“)或使用JSON.stringify('production')來完成。

所以你的webpack.config.js應該是...

webpackConfig.plugins = [
 new webpack.DefinePlugin({
  MYVARIABLE: JSON.stringify('test-value')
 })
]

當然,您應該訪問該值,以便:

webpackConfig.plugins.forEach((plugin) => {
    if (plugin.MYVARIABLE !== undefined)
        console.log(plugin.MYVARIABLE);
});

我不確定webpack.DefinePlugin允許您訪問此值。

如果需要,可以將其定義為const並導出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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