Задать вопрос
@steemy_web

Webpack react-hot-loader, компилить без перезагрузки?

Добрый день! Подскажите пожалуйста, что нужно еще сделать, что бы отображалось без перезагрузки страницы, когда делаю любое изменение файла react компонента или css идет перезагрузка каждый раз страницы.

webpack.config.js
const webpack = require('webpack');
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const WebpackNotifierPlugin = require('webpack-notifier');

const config = {
   entry: [
      'react-hot-loader/patch',
      './_f/app.js'
   ],
    
   output: {
      path: __dirname + "/_p",
      filename: "st.js"
   },
    
   devServer: {
      contentBase: "./_p",
      historyApiFallback: true,
      inline: true,
      port: 2000
   },
    
   module: {
      rules: [
         {
            test: /\.(js)$/,
            exclude: /node_modules/,
            use: [
               {
                  loader: 'react-hot-loader/webpack'
               },
               {
                  loader: 'babel-loader',
                  options: {
                     presets: [
                        'es2015',
                        'react',
                     ]
                  },
               }
            ]
         },
         {
            test: /\.styl/,
            exclude: /node_modules/,
            use: ExtractTextPlugin.extract({
               fallback: 'style-loader',
               use: [
                  {
                     loader: 'css-loader',
                     options: {
                        sourceMap: true,
                        minimize: true
                     }
                  }, 'autoprefixer-loader?browsers=last 2 versions', 'stylus-loader']
            })
         }
      ]
   },

   plugins: [
      new ExtractTextPlugin('st.css'),
      new WebpackNotifierPlugin,
      new webpack.HotModuleReplacementPlugin()
   ],

   devtool: "cheap-inline-module-source-map",
}



if (process.env.NODE_ENV === 'production') {
   config.devtool = false;
   config.plugins = [
      new ExtractTextPlugin('st.css'),
      new webpack.optimize.OccurrenceOrderPlugin(),
      new webpack.optimize.UglifyJsPlugin({comments: false}),
      new webpack.DefinePlugin({
         'process.env': {NODE_ENV: JSON.stringify('production')}
      })
   ];
};

module.exports = config;
  • Вопрос задан
  • 1061 просмотр
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • HTML Academy
    Webpack
    1 месяц
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Эдюсон
    Frontend-разработчик
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Hot Module Replacement (документация)
  1. Убрать или выключить ExtractTextPlugin для dev-конфигурации.
  2. Добавить опцию hot:true для devServer.
  3. Добавить корректный publicPath для output и devServer.
  4. Проверить конфигурацию react-hot-loader для точки входа под React.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы