webpack –watch non sta compilando i file modificati

Ho provato a eseguire il webpack --watch e dopo aver modificato i miei file JS, non provoca una ricompilazione automatica.

Ho provato a reinstallare il webpack utilizzando la npm uninstall ma non funziona ancora.

Qualche idea?

FYI: sembra che OS X possa avere una cartella danneggiata e non submit più fsevents (che watchpack / chokidar / Finder usa) per sé e per qualsiasi cartella di figlio. Non posso essere sicuro che questo è quello che ti è successo, ma è stato molto frustrante per me e per un collega.

Siamo stati in grado di rinominare la cartella padrone corrotta e poi guardare gli events immediatamente passati come previsto. Vedi questo post sul blog per ulteriori informazioni: http://feedback.livereload.com/knowledgebase/articles/86239-os-x-fsevents-bug-may-prevent-monitoring-of-certai

Le correzioni consigliate dal collegamento di cui sopra sono:

  • riavvio del computer
  • controllare il disco e riparare le autorizzazioni tramite Disk Utility
  • aggiungendo la cartella all'elenco Privacy di Spotlight (l'elenco delle cartelle non indice) e quindi rimosso da esso, effettivamente forzando un reindexing
  • rinominare la cartella, quindi rimetterla nuovamente
  • ripristinare la cartella e spostare nuovamente i vecchi contenuti

I primi due non hanno funzionato per noi, non abbiamo provato il suggerimento di Spotlight e la ri-creazione non si è rivelata necessaria.

Siamo riusciti a trovare la cartella dei problemi di root aprendo Finder e creando file in each cartella genitore successiva fino a quando non si è mostrato immediatamente (dal momento che Finder verrà chiamato anche da questo bug). La cartella root-most che non viene aggiornata è il colpevole. Abbiamo appena dovuto tornare al suo nome originale e poi l'osservatore ha lavorato.

Non ho idea di cosa provoca la corruzione, ma sono contento di avere una correzione.

Se il codice non viene ricompilato, prova a aumentare il numero di osservatori (in Ubuntu):

 echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p 

Fonte: https://webpack.github.io/docs/troubleshooting.html

Ho avuto questo problema quando lavori con WebStorm.

Disabilitazione delle impostazioni -> Impostazioni di sistema -> "Scrittura sicura" mi ha risolto.

Trovato la raccomandazione per farlo in: Troubleshooting WebPack

Solo per aggiungere soluzioni possibili: ho avuto la mia cartella di progetto all'interno di una cartella di Dropbox, spostandola risolveva il problema per me. (OS X)

Un problema è che se i nomi dei routes non sono assoluti, cose come questa succederanno. Avevo accidentalmente impostato la soluzione.root a ./ anziché __dirname e questo mi ha fatto perdere molto tempo eliminando e ricreando file come i ragazzi sopra di me.

Se cambia fs.inotify.max_user_watches come pointend out da César ancora non funziona cercare di utilizzare il polling invece degli osservatori nativi creando lo script come mostrato nei documenti o in esecuzione di webpack con --watch --watch-poll .

Se si utilizza Vim si dovrebbe provare a impostare backupcopy su yes invece che per l'auto predefinita. In caso contrario, Vim a volte rinominerà il file originale e creerà una nuova, che confonderà l'orologio webpack:

https://github.com/webpack/webpack/issues/781

Basta aggiungere questo alle impostazioni di vim, se questo è il caso:

impostare backupcopy = yes

Aggiornamenti: la cancellazione dell'intera directory e la clonazione di git di nuovo da repo corregge il mio problema.

Si noti che se si esegue webpack all'interno di una macchina virtuale (Vagrant / Virtualbox) e si modificano i file sulla piattaforma host, gli aggiornamenti dei file nella cartella condivisa potrebbero non essere inotificati su Ubuntu. Ciò provocherà che le modifiche non venga prelevata da webpack.

vedere: ticket di Virtualbox # 10660

Nel mio caso, la modifica e il salvataggio del file sull'ospite (in vi) hanno innescato il webpack. Modificarlo nell'host (in PhpStorm, nel Blocco note o in qualsiasi altra applicazione) dit non innesca il webpack che cosa faccio.

L'ho risolto usando il vagabondo-fsnotify .

Possibile soluzione: cambiare il context nella directory app.

Avevo tutti i file di configuration webpack in una sottocartella:

 components/ webpack/ development.js app.js 

In webpack/development.js , impostare il context: path.join(__dirname, '../') risolto il mio problema.

Dopo aver tentato una manciata di strategie per risolvere questo problema, ho finito solo a smettere, ma poi, mentre ho risolto un altro problema, ho provato di nuovo e tutto l'improvviso – la bandiera della --watch stava finalmente lavorando.

Per essere onesti non so cosa ha fatto funzionare in modo specifico ma dopo aver eseguito i passaggi che seguono ha appena iniziato a lavorare:

 1. Install most recent gcc version $ sudo port install gcc48 $ sudo port select --set gcc mp-gcc48 2. Install most recent clang version $ sudo port install clang-3.6 $ sudo port select --set clang mp-clang-3.6 3. Export variables holding the patch to C and C++ compiler $ export CC=/opt/local/bin/clang $ export CXX=/opt/local/bin/clang++ 

Potrebbe accadere che durante l'installazione di questi pacchetti una certa dipendenza aggiunse solo il pezzo mancante del puzzle, chi lo sa …

Spero che questo aiuti chiunque lotta là fuori per far funzionare.

Aggiungo un'altra risposta perché credo che questa sia la soluzione migliore finora. Lo sto usando each giorno e roccia! Installare questa libreria:

https://github.com/gajus/write-file-webpack-plugin

Descrizione: Forza il programma webpack-dev-server per scrivere i file di bundle nel file system.

Come installare :

 npm install write-file-webpack-plugin --save-dev 

Ho lo stesso problema. E noto che non si compila perché la mia cartella contiene un carattere (*). E usando il vecchio plugin del watcher sembra risolvere il problema. Aggiungi questa row al file di configuration webpack.

 plugins: [ new webpack.OldWatchingPlugin() ] 

Avevo un problema simile, né il webpack né il rollup in modi di orologeria che avevano preso le modifiche apportte. Ho scoperto che era fondamentalmente colpa mia mentre stavo cambiando il module (file .xx) che non era ancora importto in nessun punto dell'applicazione (ad esempio App.ts che è punto di ingresso) e mi aspettavo di creare strumenti per segnalare gli errori I fatto lì.

Aggiungendo il codice riportto di seguito al file di configuration di webpack mi ha risolto il problema, spero che questo aiuti.

 watchOptions: { poll: true } 

Il modo in cui ho risolto il problema stava trovando un errore di capitalizzazione in un path di importzione. La cartella sul file system ha avuto la prima lettera in minuscolo, il path dell'importzione è stato superiore. Tutto compilato bene, quindi questo era solo un orologio webpack include problema.

Una soluzione facile su MacOS è la seguente:

Aprire due windows terminali nella stessa directory in cui risiede il progetto.

Nella prima window di terminal eseguire: webpack –watch

Nella seconda window di finali eseguire: webpack-dev-server

Ho provato molte soluzioni possibili e questo sembra essere il più affidabile

Yo !!!! La sensibilità della cartella era il mio problema. I miei codici chiamati a richiedere () hanno avuto tutti i nomi di path minuscoli, MA le directory effettivamente avevano una lettera maiuscola in loro. Ho rinominato tutte le mie directory in minuscolo e guardavo webpack lavorato istantaneamente. YESssssssssssssss !!!!! _AckerApple