Wie konfiguriere ich meine Shell, so dass nvm use
automatisch jedes Mal laufen, wenn eine .nvmrc Datei im Verzeichnis ist und die neueste Version oder eine globale Konfiguration verwenden keine .nvmrc Datei?run `nvm use` automatisch jedes Mal, wenn es eine .nvmrc Datei im Verzeichnis
19
A
Antwort
18
Ich habe gerade über automatische Version Switching für Node.js https://github.com/wbyoung/avn erfahren, können Sie das verwenden.
Sie können auch diesen Thread folgen https://github.com/creationix/nvm/issues/110
13
Wenn Sie zsh (z Shell):
Berufung 'NVM Verwendung' automatisch in einem Verzeichnis mit einem .nvmrc Datei
Setzen Sie dies in Ihre $ HOME/.zshrc, um nvm automatisch aufzurufen, wenn Sie ein Verzeichnis eingeben, das eine .nvmrc-Datei mit einer Zeichenfolge enthält, die nvm den Knoten mitteilt zu verwenden:
# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" != "N/A" ] && [ "$nvmrc_node_version" != "$node_version" ]; then
nvm use
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
Weitere Informationen: https://github.com/creationix/nvm#zsh
0
Wenn Sie bash verwenden, können Sie diese in Ihre ~/.bashrc
Datei hinzufügen:
enter_directory() {
if [[ $PWD == $PREV_PWD ]]; then
return
fi
PREV_PWD=$PWD
[[ -f ".nvmrc" ]] && nvm use
}
export PROMPT_COMMAND=enter_directory
Verwandte Themen
- 1. Cron-Job erstellt leere Datei jedes Mal, wenn es läuft
- 2. Ist es möglich, eine Methode automatisch jedes Mal aufzurufen, wenn sich ein Wert ändert?
- 3. Visual Studio jedes Mal eine einzelne Datei neu kompilieren
- 4. Python-Shell wird jedes Mal neu gestartet, wenn ich "run module" im Editor aktiviere?
- 5. Wie man JButton hinzufügen Doubles jedes Mal, wenn es geklickt
- 6. Inkrementieren jedes Mal, wenn Skript ausgeführt wird
- 7. IntelliJ: Haltepunkt jedes Mal, wenn ein Objekt im Haltepunkt erscheint
- 8. schreibe Daten in Datei jedes Mal frisch
- 9. Run Shell-Skript für jede Datei im Verzeichnis
- 10. @instance_variable im Controller jedes Mal erhöhen
- 11. Aktivität erhöht RAM verwenden jedes Mal, wenn es gestartet wird
- 12. Namensschild, das sich jedes Mal überschneidet, wenn es geladen wird
- 13. Wie verhindert Rails 3.2.2, eine JS-Datei jedes Mal zu erstellen, wenn ich eine .coffee-Datei im Verzeichnis Assets/Javascripts/ändern
- 14. RxJS Observable - abonnieren Sie jedes Mal, wenn eine Bedingung erfüllt
- 15. Aufruf if-Anweisung jedes Mal, wenn eine Eingabe geändert wird
- 16. Drucken einer automatisch generierten Nummer, die jedes Mal erhöht wird, wenn eine Rechnung generiert wird
- 17. Rückruf jedes Mal, wenn Unterprozess druckt
- 18. Nicht jedes Mal anzeigen, wenn startUpdatlocation
- 19. Kann gdb eine bestimmte Variable jedes Mal drucken, wenn es bricht?
- 20. FullGC passiert jedes Mal, wenn CMS arbeiten
- 21. Führen Sie eine Methode jedes Mal, wenn Wert ändert
- 22. Warum erstellt es nicht jedes Mal eine neue Liste?
- 23. Ist es sinnvoll, findViewById jedes Mal im Aktivitätszyklus aufzurufen, wenn dies erforderlich ist?
- 24. Java - Läuft eine Schleife jedes Mal länger?
- 25. Gibt es eine kürzere Möglichkeit, eine Datei im selben Verzeichnis in Ruby zu verlangen?
- 26. Python, finde eine Datei im selben Verzeichnis
- 27. Android Studio JDK-Standort ändert sich jedes Mal, wenn es auf 1.8 aktualisiert wird, auf 1.7
- 28. Run Code einmal beim Laden der Seite, dann jedes Mal eine Schaltfläche geklickt wird
- 29. -Code leer jedes Mal
- 30. viewDidLoad lädt jedes Mal
Diese deprimierend ist .. gibt es keine Begrenzung zur Werkzeugstapeltiefe? Knoten → npm → nvm → avn, und sichern. * seufz * Ich werde Ball spielen, aber meine Leidenschaft schwindet mit jedem Hack. (Und danke für den Link, natürlich, gabo.) – hraban
Keiner der Kommentare im erwähnten Thread hat mit bash für mich funktioniert. Vielleicht sind sie alle für MacOS. Für etwas, das in Ubuntu funktioniert, überprüfe meine Antwort unten. – devius