2015-11-12 17 views
9

Sto eseguendo un server Webpack su una scatola virtuale con Ubuntu 15.10 utilizzando vagrant su Mac OSX.Il server di Webpack ricarica non funziona sulla casella virtuale

La configurazione webpack è abbastanza pulito:

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 è stato eseguito su VM

[email protected]:/vagrant$ webpack-dev-server --port 8080 --devtool eval --progress --colors --hot --content-base dist 

E quando modifico un file da OSX non ricaricare, ma se modifico il lo stesso file dalla VM verrà ricaricato.

Qual è il problema? Come posso ripararlo?

+0

Stai condivide una cartella sul vostro ospite con la VM? – Kenney

+0

Sì, il mio root del progetto è montato sulla directory/vagrant su VM os –

risposta

5

Ho risolto il mio problema con vagabondo rsync-auto https://docs.vagrantup.com/v2/cli/rsync-auto.html

avevo aggiunto la linea config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync_auto: true, rsync_exclude: ".git/" alla mia Vagrantfile, ed eseguire vagrant rsync-auto sotto una scheda separata.

3

questo è risposto con un'altra domanda: https://stackoverflow.com/a/34937378/5114

Se si aggiunge l'opzione --watch-poll cambia il modo webpack cerca modifiche apportate ai file.

webpack-dev-server --watch-poll --port 8080 --devtool eval --progress --colors --hot --content-base dist 

Questo rende il polling Webpack per le modifiche ai file ogni N millisecondi. Il polling funziona nelle directory condivise di Vagrant quando il metodo normale non lo fa perché non cerca gli attributi mtime o altri filesystem, legge solo i file su un intervallo. È più lento e utilizza più cpu/memoria, quindi non utilizzare il polling a meno che non sia necessario.

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

Problemi correlati