Webpack dev服务器重新加载在虚拟机上不起作用

Max*_*lin 12 vagrant webpack webpack-dev-server

我正在使用Ubuntu 15.10在虚拟机上运行webpack服务器,使用vagrant over 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'
  }
};
Run Code Online (Sandbox Code Playgroud)

Webpack在VM上运行

vagrant@vagrant-ubuntu-wily-64:/vagrant$ webpack-dev-server --port 8080 --devtool eval --progress --colors --hot --content-base dist
Run Code Online (Sandbox Code Playgroud)

当我从OSX编辑文件时,它不会重新加载,但如果我从VM编辑同一个文件,它将重新加载.

问题是什么?我该如何解决?

Max*_*lin 7

我用流浪汉解决了我的问题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在单独的选项卡下运行.


Mne*_*quo 5

这在另一个问题下得到回答:https : //stackoverflow.com/a/34937378/5114

如果添加该--watch-poll选项,它将更改webpack查找文件更改的方式。

webpack-dev-server --watch-poll --port 8080 --devtool eval --progress --colors --hot --content-base dist
Run Code Online (Sandbox Code Playgroud)

这使得webpack每N毫秒轮询一次文件更改。当普通方法不执行时,轮询将在Vagrant共享目录中进行,因为它不查找mtime或其他文件系统属性,而只是间隔读取文件。它速度较慢,并且使用的CPU /内存更多,因此除非必要,否则不要使用轮询。

https://webpack.github.io/docs/cli.html#watch