5

で使用WebpackしていHot Module Reloadingます。また、chrome 拡張機能を使用して、React Developer Tools開発中に反応ツリーを検査します。ページを調べてコンポーネント ツリーを確認すると、実際のコンポーネントの名前を確認したいと思いますが、すべてのコンポーネントの名前が として表示されProxy Componentます。

私の についての詳細をお知らせすることはできますが、Webpackこの問題を解決するために正しいことをグーグルで検索することさえ苦労しています.

私がwebpackに使用しているツールは次のとおりです。

"webpack": "^1.9.6",
"webpack-dev-middleware": "^1.2.0",
"webpack-dev-server": "^1.14.1",
"webpack-hot-middleware": "^2.0.0"

webpack.config.js

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

module.exports = {
  devtool: 'eval',
  entry: [
    'webpack-hot-middleware/client',
    './client/index'
  ],
  output: {
    path: path.join(__dirname, 'static'),
    filename: 'bundle.js',
    publicPath: '/static/'
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ],
  module: {
    loaders: [
      {
        test: /\.json$/,
        loader: 'json'
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: path.join(__dirname, 'client'),
        query: {
          plugins: ['transform-runtime'],
          presets: ['es2015', 'stage-0', 'react', 'react-hmre']
        }
      },
      {
        test: /\.scss$/,
        loaders: ['style', 'css', 'sass']
      }
    ]
  }
};
4

2 に答える 2

4

ノード環境変数を「運用」に設定する必要があったためだと思います。本番モードでは、React はコンポーネントの名前を変更し、React 開発者ツールで ProxyComponent として表示されます。

編集

問題は、ホット モジュール交換と React Transform にあります。Dan Abramov自身が述べているように、React にホット リロードを使用する場合、コンポーネントをプロキシする必要があり、プロキシされたコンポーネントの表示名はdisplayNameコンポーネントの . そのため、明示的な を追加すると機能しdisplayNameます。そうしないと、React devtools はProxyComponentモジュールの名前 :にフォールバックしますProxyComponent

于 2016-06-03T09:05:00.587 に答える