javascript - 我在 webpack.DefinePlugin 中定义的变量未定义

标签 javascript reactjs webpack ecmascript-6 ecmascript-5

webpack.config.js

const path = require('path')
HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  entry: './src/index.js',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'index_bundle.js',
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ["@babel/preset-env", "@babel/preset-react"],
            plugins: ["@babel/plugin-proposal-class-properties"]
          }
        }
      },
      {
        test:/\.css$/,
        use:['style-loader','css-loader']
      }
    ]
  },
  plugins: [
    new webpack.DefinePlugin({
      APIHOST: JSON.stringify('test'),
      BLOCKCHAINHOST: JSON.stringify('test')
    }),
    new HtmlWebpackPlugin({
      template: './src/template.html'
    }),
  ]
}

我定义了 2 个变量 APIHOST 和 BLOCKCHAINHOST 并且我尝试像这样在 reactjs App.js 中控制台记录它

componentDidMount() {
    console.log(APIHOST)
}

我收到的错误是 APIHOST 未定义。我不确定在这里做什么,我尝试为 webpack.defineplugin 添加单引号,所以它看起来像 'APIHOST': JSON.stringify('test') 但它仍然给我同样的错误。

最佳答案

你可以这样做

plugins: [
    new webpack.DefinePlugin({
        'process.env': {
            'NODE_ENV': JSON.stringify('development')
        }
    })
],

然后在你的代码中

process.env.NODE_ENV

我用的版本是

"webpack": "^4.29.6"

关于javascript - 我在 webpack.DefinePlugin 中定义的变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58053811/

相关文章:

javascript - 将数据动态添加到 Highcharts 中的系列

javascript - 如何将现有的 CSS 类样式应用于动态创建的 div?

reactjs - React 导航共享元素 5 嵌套导航器

javascript - 如何使用简单的 'a' 标签在现有网站中包含使用 npm 和 webpack 构建的 vuejs 应用程序?

ruby-on-rails - 带有 Webpacker 的 Rails 5.2 上的基础 scss

javascript - TypeError : __webpack_require__(. ..).context 不是函数 - 可以硬编码,但不能与参数一起使用

javascript - 无法将方法的头部传递给 React 标记中的事件处理

javascript - ng-model 和下拉列表,获取名称,而不是值

javascript - 使用抽屉导航时 react 导航标题不可见

css - 如何更改 MUI 输入下划线颜色?