Vue cli 3 горячая перезагрузка вдруг не работает в браузерах - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть проект Vue, сгенерированный Vue cli 3, и моя горячая перезагрузка внезапно перестала работать в моих браузерах.Изменения, внесенные в код, по-прежнему регистрируются терминалом, однако мой браузер не фиксирует эти изменения.Я должен вручную обновить, чтобы забрать новые изменения.Как предложили некоторые другие, я вручную установил poll: true в моем vue.config.js, и я также попытался установить прокси, но оба не увенчались успехом.

Есть предложения, чтобы эта работа снова?

Обновление:

После некоторых обновлений Vue оно вдруг снова заработало.Я до сих пор не знаю причину этого.Возможно, это ошибка в vue-cli?

Ответы [ 5 ]

0 голосов
/ 26 августа 2019

Я надеюсь, что это может кому-то помочь, я использовал терминал в своем WebStorm, а vue-cli-service не работал, потом я открыл обычный терминал, и все, возможно, что-то в WebStorm не сработалопусть правильный путь в vue-cli-service

0 голосов
/ 26 февраля 2019

Может быть, это может помочь https://webpack.js.org/configuration/watch/#changes-seen-but-not-processed

"Убедитесь, что в вашей системе достаточно доступных наблюдателей. Если это значение слишком мало, средство просмотра файлов в Webpack не распознает изменения:"

cat /proc/sys/fs/inotify/max_user_watches

"В macOS папки могут быть повреждены в определенных сценариях. См. эту статью."

А по ссылке выше вы можете проверитьдругие известные проблемы.

0 голосов
/ 22 января 2019

Моя проблема была WDS
Отображается консоль:

[HMR] Waiting for update signal from WDS...
[WDS] Disconnected!
GET http://ip:port/sockjs-node/info?t=some-number
net::ERR_CONNECTION_TIMED_OUT sockjs.js?some-number

Решение для меня было:
in

package.json

change

"serve": "vue-cli-service serve",

"serve": "vue-cli-service serve --host localhost",

или
добавьте

module.exports = {
  devServer: {
    host: 'localhost'
  }
}

к

vue.config.js

:)

0 голосов
/ 08 февраля 2019

Попробуйте выйти из текущего терминала, откройте новый и выполните команду npm run serve.Это сработало для меня.

Ссылка Ссылка

Удачи ...

0 голосов
/ 05 декабря 2018

HMR имеет проблемы в различных средах, в этих ситуациях вы можете помочь себе с опцией опроса:

https://github.com/vuejs-templates/webpack/blob/develop/template/config/index.js#L21

var devMiddleware = require('webpack-dev-middleware')(compiler, {
  publicPath: webpackConfig.output.publicPath,
  stats: {
    colors: true,
    chunks: false
  },
  watchOptions: {
    aggregateTimeout: 300,
    poll: 1000
  }
})

Кажется, я наконец нашел это: мой $cat /proc/sys/fs/inotify/max_user_watches был на 8192, и это помогло мне:

echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches

Теперь горячая перезагрузка Vue работает без sudo и без опроса!))))

Один из режимов сбоя, с которым я здесь столкнулся, это то, что вам удалось завершить несколько установок webpack в ваших node_modules.

Перезагрузка использует эти два битакода, передающего события друг другу:

webpack-dev-server/client/index.js

    var hotEmitter = require('webpack/hot/emitter');
    hotEmitter.emit('webpackHotUpdate', currentHash);

webpack/hot/dev-server.js

    var hotEmitter = require("./emitter");
    hotEmitter.on("webpackHotUpdate", function(currentHash) {

Однако, если у вас установлено несколько веб-пакетов (например, один и один верхнего уровня в @ vue / cli-service), запрос разрешит первый для ./node_modules/webpack/hot/emitter.js и второй к ./node_modules/@vue/cli-service/node_modules/webpack/hot/emitter.js, которые не являются одним и тем же объектом, поэтому слушатель никогда не получает событие, и перезагрузка завершается неудачей.

Чтобы решить эту проблему, я просто удалил и переустановил @ vue / cli-service, который выгляделочистить package-lock.json и разрешить в единый веб-пакет верхнего уровня.

Я не знаю, есть ли какой-нибудь способ убедиться, что этого не произойдет - однако это может быть возможно для vue-cli-3, чтобы определить ситуацию и хотя бы записать предупреждение в режиме разработки?

[Кстати, добавление devServer: { clientLogLevel: 'info' } } в vue.config.js действительно помогло при отладке.]

...