Ошибка типа: ReactHotAPI не является функцией

0

Описание ошибки,

TypeError: ReactHotAPI is not a function
<anonymous>
 bundle.js:2632
<anonymous>
 bundle.js:2632
<anonymous>
 bundle.js:2632
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:2572
<anonymous>
 bundle.js:2572
<anonymous>
 bundle.js:2572
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:2347
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:1491
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:1411
<anonymous>
 bundle.js:1411
<anonymous>
 bundle.js:1411
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:698
<anonymous>
 bundle.js:698
<anonymous>
 bundle.js:698
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:595
<anonymous>
 bundle.js:595
__webpack_require__()
 bundle.js:556
hotCreateRequire/fn()
 bundle.js:87
<anonymous>
 bundle.js:586
__webpack_require__()
 bundle.js:556
<anonymous>
 bundle.js:579
<anonymous>
 bundle.js:1
 bundle.js:2632:318

Мой Webconfig,

module.exports = {
  ip: IP,
  port: PORT,
  devtool: 'source-map',
  resolve: {
    alias: {
      'react-native': 'react-web',
      'ReactNativeART': 'react-art',
    },
    extensions: ['', '.js', '.jsx'],
  },
  entry: isProd? [
    config.paths.index
  ]: [
    'webpack-dev-server/client?http://' + IP + ':' + PORT,
    'webpack/hot/only-dev-server',
    config.paths.index,
  ],
  output: {
    path: path.join(__dirname, 'output'),
    filename: 'bundle.js'
  },
  plugins: [
     new HasteResolverPlugin({
      platform: 'web',
      nodeModules: ['react-web']
    }),
    new webpack.DefinePlugin({
      'process.env': {
        'NODE_ENV': JSON.stringify('development'),
      }
    }),
    isProd? new webpack.ProvidePlugin({
      React: "react"
    }): new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    new HtmlPlugin(),
  ],
  module: {
    loaders: [
      {
      test: /\.jsx?$/,
      loaders: ['react-hot', 'babel-loader?presets[]=es2015&presets[]=react&presets[]=stage-2&presets[]=stage-0'],
      include: [config.paths.src],
      exclude: '/node_module' 
      },
    { 
      test: /\.css$/, 
      loader: "style-loader!css-loader"
    },
    {
      test: /.*\.(gif|png|jpe?g|svg)$/i,
      loader: 'file-loader'
    }],
    resolve: {
      extensions: ['.js', '.jsx']
    }
  }
};

Я пробовал так много способов решить эту проблему. Где-то написанное исключает модули узлов, он будет работать. Да его работы после исключения. Я отдельно создаю GiftedMassanger для Интернета, но я не исключаю никаких модулей узлов. Теперь я GiftedMessanger интегрируется с моим основным приложением, тогда я сталкиваюсь с реальной жестокой вещью webpack, если я исключаю модули узлов, тогда основное приложение будет работать, а одаренный мессенджер не будет. Если я не исключаю модули узлов, то я получил ReactHotAPI, это не функция. Я хочу, чтобы средний путь удовлетворял обе вещи.

Теги:
react-native
webpack
babeljs
webpack-dev-server

1 ответ

2

Вам нужно исключить node_modules в ваших загрузчиках - вы исключили node_module - я думаю, это должно сработать.

loaders: [
      {
      test: /\.jsx?$/,
      loaders: ['react-hot', 'babel-loader?presets[]=es2015&presets[]=react&presets[]=stage-2&presets[]=stage-0'],
      include: [config.paths.src],
      exclude: '/node_modules/' 
      },
    { 
      test: /\.css$/, 
      loader: "style-loader!css-loader"
    },
    {
      test: /.*\.(gif|png|jpe?g|svg)$/i,
      loader: 'file-loader'
    }]
  • 0
    Я решил эту проблему за исключением того, что модуль узла такой же, как у меня, но проблема в том, что я интегрировал в свой проект какую-то стороннюю библиотеку, которая зависит от некоторых модулей узлов, поэтому мне нужно включить эти модули узлов.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню