Горячая перезагрузка webpack4 не работает для некоторых файлов

У меня проблема с реакцией webpack4, когда я пытаюсь перезагрузить изменения из определенных файлов. И те файлы, в которых я изменил исходный путь (/from /src/containers в /src/components). Остальные файлы перезагружаются хорошо... Код моего файла конфигурации webpack приведен ниже:

  const path = require('path');
  const HtmlWebPackPlugin = require("html-webpack-plugin");
  const Dotenv = require('dotenv-webpack');

  const htmlWebpackPlugin = new HtmlWebPackPlugin({
    template: "./src/index.html",
    filename: "./index.html"
  });

  module.exports = {
    output: {
      path: path.join(__dirname, './'),
      publicPath: '/'
    },
    module: {
      rules: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          use: {
            loader: "babel-loader"
          }
        },
        {
          test: /\.html$/,
          use: [
            {
              loader: "html-loader",
              options: { minimize: true }
            }
          ]
        },
        {
          test: /\.css$/,
          use: [
            {
              loader: "style-loader"
            },
            {
              loader: "css-loader",
              options: {
                modules: true,
                importLoaders: 1,
                localIdentName: "[name]_[local]_[hash:base64]",
                sourceMap: true,
                minimize: true
              }
            }
          ]
        }
      ]
    },
    plugins: [
      new HtmlWebPackPlugin({
        template: "./src/index.html",
        filename: "./index.html"
      }),
      new Dotenv()
    ],
    devServer: {
      historyApiFallback: true,
    }
  };

person gonzasismo    schedule 18.06.2019    source источник
comment
Не могли бы вы поделиться журналом ошибок, пожалуйста?   -  person tunaayberk    schedule 19.06.2019


Ответы (2)


Если вы можете поделиться журналом ошибок, я могу сказать, в чем настоящая проблема. Но текущая конфигурация отсутствует для точки входа. Если ваше приложение представляет собой одностраничное приложение, используйте следующий код:

module.exports = {
  entry: path.join(__dirname, "src", "index.js"),
  ...
}

если вы создаете многостраничное приложение, используйте следующий код;

module.exports = {
  entry: {
    pageOne: path.join(__dirname, "src", "pageOne", "index.js"),
    pageTwo: path.join(__dirname, "src", "pageTwo", "index.js"),
    pageThree: path.join(__dirname, "src", "pageThree", "index.js")
  }
  ...
}
person tunaayberk    schedule 19.06.2019
comment
Спасибо за ответ! Хоть я и не смог это исправить. Журнала ошибок на самом деле нет. Все успешно компилируется и работает. Однако похоже, что приложение хранит некоторый кеш для удаленных файлов (изменив их путь к каталогу), и эти файлы, когда я вношу некоторые изменения, страница не перезагружает их, но другие да, они отражают изменения при горячей перезагрузке. - person gonzasismo; 19.06.2019
comment
Я пробовал с вашей конфигурацией в своем шаблонном проекте. Он работает правильно со свойством точки входа. Я не эксперт по горячей перезагрузке, но это должно работать, когда вы меняете файл, а не каталог файла. После изменения каталога файла просто измените коды импорта на новый каталог. Затем он должен обновить страницу. - person tunaayberk; 19.06.2019

Для всех, кто прибывает сюда и сталкивается с этой проблемой, у меня была именно эта проблема, когда файлы в моем каталоге «src/components» не перезагружались в горячем режиме.

Я смог исправить это, когда увидел в журнале, что веб-пакет по какой-то причине ищет каталог «src/Components», поэтому я изменил имя каталога компонентов на что-то совершенно другое, например «заполнитель», а затем снова изменил его на «компоненты» и запустил новую установку.

person 7evam    schedule 16.09.2020