【问题标题】:Uncaught ReferenceError: react is not defined webpackUncaught ReferenceError: react is not defined webpack
【发布时间】:2016-10-28 20:05:02
【问题描述】:

尝试加载我的应用程序时,我在浏览器控制台中收到以下错误。谁能解释为什么它没有找到反应?

Uncaught ReferenceError: react is not defined

我正在使用 webpack 来捆绑我的代码。捆绑包本身通过了。

webpack 配置:

var path = require('path');
var webpack = require('webpack');

module.exports = {
  devtool: 'eval-source-map',
  entry: [
    path.join(__dirname, 'src/client/app.js'),
    path.join(__dirname, 'src/client/assets/styles/main.less')
  ],
  output: {
    path: path.join(__dirname, '/dist/'),
    filename: "bundle.js"
  },
  module: {
    loaders: [
      {
        test: /.jsx?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: {
          presets: ['es2015', 'react', 'stage-2']
        }
      },
      {
        test: /\.json$/,
        loader: 'json-loader'
      },
      {
        test: /\.less$/,
        loader: "style!css!less"
      }
    ]
  },
  watch: true,
  node: {
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  },
  externals: /^[a-z\-0-9]+$/
};

谢谢

【问题讨论】:

  • 您需要展示更多代码。您是否需要在源代码中做出反应?
  • @JoeAttardi 所说的,以及你的 package.json 的副本会很棒
  • 可能你忘记安装 babel-preset-react 了? npm install --save-dev babel-preset-react

标签: javascript reactjs webpack


【解决方案1】:

尝试将此添加到您的webpack.config.js

externals: {
  "react": "React"
}

或者如果你使用 ReactDOM:

externals: {
  "react": "React",
  "react-dom": "ReactDOM"
}

【讨论】:

  • 这会将它从包中排除,这会导致 OP 出现错误。这告诉 Webpack 不要捆绑 React,而是期望 React 将在全球范围内可用(在浏览器中它将是 window.React)。
猜你喜欢
  • 2020-05-10
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 2020-03-25
  • 2018-05-13
  • 2019-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多