2015-09-09 15 views
14

Ich Windows ausführen, und wenn Npm ändert meine Package.json-Datei, schreibt es mit Unix-Stil Zeilenendungen (LF). Ich möchte, dass es Zeilenenden im Windows-Stil verwendet (CRLF).Wie kann ich npm so konfigurieren, dass Zeilenendungen in Windows-Stil in package.json verwendet werden?

Gibt es eine globale Konfigurationseinstellung oder sogar eine Befehlszeilenoption, damit npm die richtigen EOL-Zeichen verwendet?

+0

Ich glaube nicht, Zeilenenden können durch NPM Config oder CLI Optionen geändert werden. Aber wenn Sie git zur gleichen Zeit verwenden, schlage ich vor, die automatische Konvertierung durch 'git config core.autocrlf true' zu ​​aktivieren. Wenn Sie dann "git add" ausführen, werden die Zeilenenden automatisch konvertiert und führen nicht zu einem zusätzlichen Commit. – Israfel

Antwort

4

Unter der Annahme, Git, die einfachste „Lösung“ dieses Problem ist eine .gitattributes-Datei zu verwenden, um festzulegen, dass package.json (und package-lock.json jetzt) ​​immer LF verwenden:

# .gitattributes in project root 
package.json text eol=lf 
package-lock.json text eol=lf 

(Dieses Problem here verfolgt wird.)

+0

Ehrfürchtig. Beachten Sie, dass Sie auch einen Platzhalter verwenden können: 'package * .json text eol = lf' – emackey

+0

Ich diskutierte mit dem Platzhalter ... aber was ist, wenn ein Projekt eine andere Datei enthält, die mit' package' beginnt und mit '.json' endet? ! (Vorzeitige Optimierung macht Spaß.) – dahlbyk