Hintergrund
OneDrive erlaubt es nicht, Verzeichnisse anhand des Namens auszuschließen, und das ändert sich nicht so schnell :
[Die repräsentative Antwort von OneDrive auf eine UserVoice-Anforderung:] Derzeit nicht
Es wird empfohlen, Verzeichnisse zu deaktivieren, die in den OneDrive-Einstellungen nicht synchronisiert werden sollen. Dies ist jedoch mit OneDrive Files On-Demand unmöglich geworden .
Lösung
Sie können dieses Problem jedoch lösen, indem Sie die Einstellungen auf der Seite Node.js anpassen. Machen Sie aus dem node_modules
Verzeichnis einen Dateisymbollink zu einem anderen Ort:
# Open any place outside OneDrive cd D:\node_dependencies # Make a symlink target. After linking, node_modules for your project # will be installed here mkdir node_modules_for_my_project # Open the project directory cd <the project directory> # Make a *file* link from node_modules to the newly created directory. # You will need to delete existing node_modules directory if it exists cmd /C "mklink node_modules D:\node_dependencies\node_modules_for_my_project"
Das Wichtigste dabei ist, dass Sie einen Datei- Symlink erstellen, nicht ein Verzeichnis . OneDrive erkennt und synchronisiert diesen Symlink nicht, während Node.js wie beabsichtigt damit arbeitet:
Getestet mit OneDrive v17.3.7101.1018 und OneDrive Files On-Demand aktiviert.
Nachteile
Dies ist keine universelle Lösung. Ein Nachteil davon ist, dass Explorer, Powershell und andere Tools nicht node_modules
als Verzeichnis erkannt werden :
Node.js-basierte Code-Editoren lesen es jedoch gut: