Sembra essere un problema comune, ma dopo alcuni giorni di ricerca attiva non ho trovato nessuna soluzione che funzioni nel mio caso.Webpack --watch non funziona su Windows (né webpack-dev-server)
- windows7-x64
- nodo: 6.3.0-x64 (provato anche nodo-v4.4.7-x64)
- npm: 3.10.3
- webpack: 1.13.1
- sublimi il testo (non Vim)
Prima di tutto, non posso installare FSEvents su finestre, che potrebbe essere il problema, perché è la libreria per la visione su OS X.
D:\file>npm install webpack
[email protected] D:\file
`-- [email protected]
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
Quindi, se i vostri --watch
funziona su Windows, mi dica, avete lo stesso problema con il salto FSEvents durante l'installazione webpack ?
In secondo luogo, webpack --watch
fa compilare il file, ma non guarda affatto.
E.g. se uso orologio stilo, allora in realtà blocca la mia linea di comando fino a quando ho premere Ctrl + C
D:\file>stylus -w style.styl
watching C:/Users/...
compiled style.css
watching style.styl
_
E solo dopo ctrl + c sarà sbloccare la mia tastiera.
^CTerminate batch job (Y/N)? y
Mentre webpack -w
è totalmente diverso. Non si tratta solo di non compilare il file sui cambiamenti, ma anche di non guardare affatto. Voglio dire che dopo aver digitato il comando webpack --watch
si sta compilando il file una volta, ma non blocca la mia tastiera e quindi mi permette di scrivere un altro comando.
D:\webpa>webpack main.js bundle.js
D:\webpa>webpack -w main.js bundle.js
D:\webpa>webpack --watch main.js bundle.js
D:\webpa>
Lo stesso con webpack-dev-server
- inizia server, ma poi subito lo finisce.
D:\webpa>webpack-dev-server --hot --inline
http://localhost:8080/
webpack result is served from/
content is served from D:\webpa
D:\webpa>
Sembra che il problema non è con webpack.config.js, perché non guarda anche con un comando come webpack --watch main.js bundle.js
, ma in ogni caso, ecco la mia config di base.
var webpack = require('webpack');
module.exports = {
context: __dirname,
entry: "./main.js",
output: {
path: __dirname,
filename: "bundle.js"
},
};
e ho provato molte altre varianti:
var webpack = require('webpack');
var path = require('path');
var entry = path.join(__dirname, "main.js");
var WebpackNotifierPlugin = require('webpack-notifier');
module.exports = {
context: __dirname,
entry: entry,
output: {
path: __dirname,
filename: "bundle.js"
},
resolve: {root: [__dirname]},
resolve: { fallback: path.join(__dirname, "node_modules") },
resolveLoader: { fallback: path.join(__dirname, "node_modules") },
plugins: [
new webpack.OldWatchingPlugin(),
new WebpackNotifierPlugin(),
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
),
new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors/js/applibs.js'),
new webpack.optimize.DedupePlugin()
]
};
Come ho detto, il problema sembra essere non in webpack.config.js
Ho anche provato cose come:
echo fs.inotify.max_user_watches=524288
webpack-dev-server --content-base ./ --port 9966 --hot --inline
webpack --watch --watch-poll
rename/move/create new folder, reinstall node.js and webpack
Quindi sì, se si ha questo problema e si risolto esso, si prega di condividere alcune informazioni.
- Hai avuto problemi con l'installazione FSEvents?
- Il tuo comando
webpack --watch
ha bloccato la tua tastiera e in realtà sta guardando, ma semplicemente non compila i file dopo le modifiche? O stava finendo di guardare immediatamente come nel mio caso? - Qualche altro suggerimento cosa usare a parte
--watch
ewebpack-dev-server
?
Grazie!
fsevents potrebbe essere l su una cosa specifica unix. Ricevo gli stessi avvertimenti su Windows e non è stato un problema, quindi puoi eliminarlo. – mjohnsonengr
Ho anche avuto fortuna con l'aggiunta di 'watchOptions: { aggregateTimeout: 300, sondaggio: 1000 },' alla mia configurazione del server di sviluppo. Ho dovuto effettivamente creare una configurazione del server di sviluppo piuttosto che affidarmi alla CLI di webpack-dev-server. Vedi https://webpack.github.io/docs/configuration.html#devserver – mjohnsonengr
@mjohnsonengr, grazie per il tuo aiuto! Sì, ho dimenticato di menzionare che ho anche provato 'watchOptions: {aggregateTimeout: 300, sondaggio: 1000},', ma non ha funzionato. Potresti condividere il tuo webpack.config.js e la configurazione del server di sviluppo? E a proposito, il tuo '--watch' funziona correttamente dall'inizio? – SamAI