2016-11-16 5 views
3

Jedes Mal, wenn ich eine Datei mit vim öffne, erkennt webpack Änderungen und kompiliert den Code neu. Vim erstellt temporäre Dateien wie .test.txt.swp, wodurch Webpack glaubt, dass sich etwas im Projekt geändert hat.Webpack-Datei für vim swp-Dateien überwachen

Deaktivierung swp Dateierstellung half, aber ich möchte sicher bleiben mit SWP-Dateien und nicht abgelenkt mit Browser neu laden die Seite zu oft, noch mit unnötigen Code-Kompilierung.

Wie macht man webpack wissen, dass es nicht reagieren sollte. *. Swp Dateien Änderungen?

EDIT: Es ist tatsächlich Webpack-dev-Server, die auf neue Vim Swap-Dateien erkannt reagiert. Und das nur, wenn bestimmte Einträge in Quelldateien kompiliert werden. Beispiele sind aus angular2 importieren, aber nicht nur sie: import '@angular/core'; import '@angular/common';

+0

Ich denke, es ist ein Problem mit dem Webpack-Dev-Server, aber vielleicht liest es nur, nach was importierte Bibliotheken suchen. https://github.com/webpack/webpack-dev-server/issues/719 –

Antwort

8

Ich weiß nichts über „webpack“, aber Sie können Vim sagen Swap-Dateien in einem einzigen Verzeichnis zu speichern, anstatt des aktuellen Verzeichnisses mit dem 'dir' Einstellung. Ich benutze dies in meinem vimrc:

set dir=$HOME/.vim/tmp/swap 
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif 

Dies wird auch beheben Probleme mit anderen Werkzeugen, sowie „baumelnden Auslagerungsdateien“, Auslagerungsdateien in VCS-Systemen etc.

Wenn Sie Vim ignorieren Vertausche Dateien in Tools (wie zB Webpack) und denke daran, dass es einfach nicht reicht, .swp zu ignorieren. Vim kann auch Swap-Dateien mit den Erweiterungen erstellen wie .swo, .swn usw.

+0

Noice! Dies hat den Angular 4-Entwicklungsserver dazu gebracht, jedes Mal, wenn ich einen Knopf in vim drücke, aufzuspringen. – Hubro

3

Sie Dateien basierend auf einem Muster ausschließen:

module: { 
    loaders: [ 
    { 
     // existing loader config 
     exclude: /\.swp$/, 
    }, 
    ] 
} 

Sie sollten nicht alles standardmäßig bündeln, obwohl; Verwenden Sie einen Loader-Test, um nur .js Dateien zu bündeln (oder was immer Sie explizit benötigen; .jsx, .css, usw.). So etwas wie dies, zum Beispiel:

module: { 
    loaders: [ 
    { 
     test: /.jsx?$/, 
     loader: 'babel-loader', 
     exclude: [/node_modules/, 'test/', /\.swp$/], 
     query: { 
     presets: ['es2015', 'react'] 
     } 
    }, 
    { 
     test: /\.css$/, 
     loader: "style-loader!css-loader" 
    }, 
    ] 
} 
+0

Es ist also so konfiguriert, dass Webpack nach allen Dateien sucht. Vielleicht können Sie jetzt die bearbeitete Frage ansehen, ich habe die URL zur Konfiguration hinzugefügt. –

0

Die Antwort war für mich die folgende Änderung in der webpack Konfiguration

<webpackConfObject>.devServer.watchOptions = { 
    ignored: /\.sw.$/ 
}; 

Das ausschließen Attribut der Module nicht in die Datei Beobachter gilt, die ein Ereignis auslöst laden Sie die Seite auf dem Webpack-Dev-Server neu, aber Sie können ignore Dateien, die einem Muster entsprechen.