Перезагрузка сервера Webpack dev не работает в виртуальной коробке
Я запускаю сервер webpack на виртуальной коробке с Ubuntu 15.10, используя брандмауэр над Mac OSX.
Конфигурация webpack довольно чистая:
var HtmlWebpackPlugin = require('html-webpack-plugin');
var path = require('path');
var webpack = require('webpack');
var MINIFY = process.env.MINIFY === true;
var FRONTEND_ROOT = './static'
var SRC_PATCH = FRONTEND_ROOT + '/scripts';
var BUILD_PATH = './dist';
module.exports = {
entry: SRC_PATCH + '/main.js',
devtool: 'source-map',
output: {
path: BUILD_PATH,
filename: 'bundle.js'
},
resolve: {
extensions: ['', '.js', '.jsx'],
modulesDirectories: [SRC_PATCH, 'node_modules']
},
plugins: [
new HtmlWebpackPlugin({
filename: 'index.html',
template: path.resolve(FRONTEND_ROOT, 'index-template.html'),
minify: MINIFY
})
],
module: {
loaders: [
{
test: /\.jsx|js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
eslint: {
configFile: './.eslintrc'
}
};
Webpack был запущен на VM с помощью
[email protected]:/vagrant$ webpack-dev-server --port 8080 --devtool eval --progress --colors --hot --content-base dist
И когда я редактирую файл из OSX, он не перезагружается, но если я отредактирую тот же файл из VM, он перезагрузится.
В чем проблема? Как я могу это исправить?
Ответы
Ответ 1
Я решил проблему с бродягой rsync-auto
https://docs.vagrantup.com/v2/cli/rsync-auto.html
Я добавил строку config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync_auto: true, rsync_exclude: ".git/"
в мой Vagrantfile
и запустил vagrant rsync-auto
под отдельной вкладкой.
Ответ 2
На это отвечает другой вопрос:
fooobar.com/questions/623947/...
Если вы добавите параметр --watch-poll
, он изменит способ поиска файлов в папке webpack.
webpack-dev-server --watch-poll --port 8080 --devtool eval --progress --colors --hot --content-base dist
Это делает опрос webpack для внесения изменений в файлы каждые N миллисекунд. Опрос работает в общих каталогах Vagrant, когда обычный метод не работает, потому что он не ищет атрибуты mtime или других файловых систем, просто считывает файлы с интервалом. Он медленнее и использует больше CPU/памяти, поэтому не используйте опрос, если вам не нужно.
https://webpack.github.io/docs/cli.html#watch
Ответ 3
Первое, что вам нужно увидеть, это если в консоли, где вы запускаете сервер, происходит перекомпилированный процесс или нет. Если "нет", то ответ находится в строке SyncFolder, которую @maxim-schepelin сказал выше. Если перекомпилируется, а веб-страница не перезагружается, возможно, решение webPack.
Изменить
Еще одна причина, по которой синхронизация папок работает неправильно https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers