Babel-Befehl nicht gefunden


75

Ich habe das babel-cli Werkzeug wie erläutert durch die Babel installiert ‚Erste Schritte‘ Seite.

Von einem Terminal in meinem Projektordner:

npm install --save-dev babel-cli

Danach gibt es ein node_modules-Verzeichnis mit einem babel-cli-Ordner, aber es wird keine package.json erstellt. npm zeigt auch den folgenden Fehler:

npm WARN enoent ENOENT: no such file or directory, open '/Users/MyName/Sites/Tutorials/Babel2/package.json

Beim Versuch, babel auszuführen, erhalte ich Folgendes:

babel src -d lib
-bash: babel: command not found

Ich habe die neueste Version von nodejs / npm installiert. Ich habe npm update -g ausgeführt und meine .bash_profile- Datei so bearbeitet, dass sie Folgendes enthält:

export PATH=$PATH:/Users/MyName/npm/bin
export PATH=/usr/local/share/npm/bin:$PATH

Ich habe dies nicht mit anderen npm-Tools wie browserify erlebt. Warum wird Babel nicht erkannt?


1
Sie können hier sehen, wie Sie mit babel-cli beginnen können: stackoverflow.com/questions/34483748/…
— James Hibbard

Wenn Sie Fisch verwenden, versuchen Sie es mit github.com/oh-my-fish/plugin-node-binpath
— onmyway133

In meinem Fall musste ich meine node_modules neu installieren: rm -rf ./node_modules && npm i
— Richard

Antworten:


88

Hier gibt es zwei Probleme. Zunächst benötigen Sie eine package.jsonDatei. Wenn Sie npm anweisen, ohne einen zu installieren, wird der npm WARN enoent ENOENT: no such file or directoryFehler ausgegeben. Führen Sie npm initin Ihrem Projektverzeichnis aus, um eine package.jsonDatei für das Projekt zu generieren .

Zweitens werden lokale Binärdateien wahrscheinlich nicht gefunden, da die lokalen ./node_modules/.binnicht vorhanden sind $PATH. Es gibt einige Lösungen unter Wie verwende ich ein lokal in node_modules installiertes Paket? , aber es könnte einfacher sein, Ihre babel-cli-Befehle einfach in npm-Skripte zu verpacken. Dies funktioniert, weil npm rundie Ausgabe von npm bin( node_modules/.bin) zu den PATHbereitgestellten Skripten hinzugefügt wird.

Hier ist ein reduziertes Beispiel, package.jsondas die lokal installierte babel-cli-Version zurückgibt:

{
  "scripts": {
    "babel-version": "babel --version"
  },
  "devDependencies": {
    "babel-cli": "^6.6.5"
  }
}

Rufen Sie das Skript mit diesem Befehl auf : npm run babel-version.

Das Einfügen von Skripten in package.json ist sehr nützlich, wird jedoch häufig übersehen. Viel mehr in den Dokumenten: Wie npm mit dem Feld "Skripte" umgeht


2
Nachdem ~/.profileich die anderen Antworten geprüft und das Durcheinander mit meiner Datei untersucht habe, um sicherzustellen, dass ich die Pakete lokal aufrufen kann node_modules, bin ich zu dem Schluss gekommen, dass der scriptsBereich package.jsondie beste Option ist. Sie müssen Ihren Mitarbeitern nicht sagen, dass sie ihre Profile ändern oder einen Alias ​​erstellen sollen. Ihre Skripte funktionieren einfach.
— Jared Egan

36

Als ich diese Frage fand, suchte ich

$ npm install -g babel-cli

1
Sie sollten niemals sudo mit npm verwenden müssen. Versuchen Sie, Ihre Knotenversionen mit nvm zu verwalten.
— John Ottenlips

1
npm install -g babel-cliFunktioniert ohne Sudo.
— John Ottenlips

2
Sie sollten sudomit verwenden, npm install -g babel-clium auf diese Datei / usr / local / lib / node_modules zuzugreifen. Andernfalls wird Ihnen dies verweigert.
— Code

In den Dokumenten zu @ babel / cli wird empfohlen, babel-cli nicht global zu installieren (um Konflikte mit anderen Projekten zu vermeiden, die andere Versionen von babel verwenden, und um die Portabilität zu verbessern)
— 7hibault

11

Dies ist ein häufiges Problem, bei dem nach .cmdDateien aus Ihrem Stammverzeichnis gesucht wird, in dem Sie sie installiert haben babel-cli. Versuchen Sie den folgenden Befehl.

./node_modules/.bin/babel.cmd

Sobald Sie Ihren Quellcode in der Eingabeaufforderung sehen können. Ihr nächster Schritt ist die Installation eines weiteren npm-Moduls babel-preset-es2015.

Folgen Sie der folgenden Antwort, um zu installieren babel-preset-es2015und zu sehen, warum Babel dies benötigt.

Babel-Datei-wird-kopiert-ohne-transformiert zu werden


6

Dies ist , was ich habe meinen lokales Projekt getan , um automatisch hinzufügen node_modules/.binPfad PATH. In ~/.profilefügte ich hinzu:

if [ -d "$PWD/node_modules/.bin" ]; then 
    PATH="$PWD/node_modules/.bin"
fi

Laden Sie dann Ihr Bash-Profil neu: source ~/.profile


6

So installieren Sie Version 7+ von Babel:

npm install -g @babel/cli
npm install -g @babel/core

Das hat mir geholfen!
— JavaRunner

4

Die babelglobale Installation löst dieses Problem:

npm install -g @babel/core @babel/cli

Allerdings ist es nicht Abhängigkeiten fördern global zu installieren , weil sie nicht ihre Versionen auf einer Pro-Projektbasis verwaltet haben.

Sie sollten Ihre Abhängigkeiten lokal installieren, wie in babelder Dokumentation vorgeschlagen :

npm install --save-dev @babel/core @babel/cli

Der Nachteil ist, dass Sie auf diese Weise keine schnelle / bequeme Möglichkeit haben, lokale Binärdateien interaktiv aufzurufen (in diesem Fall babel). npxgibt Ihnen eine gute Lösung:

npx babel --version

Dadurch wird Ihre lokale Installation von ausgeführt babel. Wenn Sie die Eingabe vermeiden möchten npx, können Sie außerdem den automatischen Fallback der Shell konfigurieren und dann einfach Folgendes ausführen:

babel --version

Hinweis: Es ist wichtig .babelrc, im Stammverzeichnis Ihres Projekts eine Datei zu erstellen , in der Sie Ihre Babel-Konfiguration angeben. Als Ausgangspunkt können Sie env-presetauf ES2015 + transpilieren:

npm install @babel/preset-env --save-dev

Um die Voreinstellung zu aktivieren, müssen Sie sie wie folgt in Ihrer .babelrc-Datei definieren:

{
  "presets": ["@babel/preset-env"]
}

3

Ich hatte das gleiche Problem. Löschte den nodemodulesOrdner und öffnete die Eingabeaufforderung als Administrator und lief dann npm install.

Alle Pakete gut installiert.


1

Sie müssen wie folgt Anführungszeichen um den Pfad zu Ihrer Babel-Datei hinzufügen

"./node_modules/.bin/babel" --help


1

Wenn Sie cmd-Befehle verwenden möchten, haben Sie zwei Möglichkeiten. Installieren Sie es zunächst in einer gloabl-Umgebung. Der andere Weg ist npm link. Versuchen Sie also den ersten Weg : npm install -g babel-cli.


1

Eine Möglichkeit besteht darin, die CLI global zu installieren.

Seit der Veröffentlichung von Babel 7 hat sich der Namespace von babel-cliauf geändert @babel/cli, daher:

npm install --global @babel/cli

Sie werden wahrscheinlich immer noch auf Fehler stoßen, wenn @babel/core:

npm install --global @babel/core

0

Ich stieß auf das gleiche Problem und probierte wirklich alles aus, was mir einfiel. Ich bin kein Fan davon, irgendetwas global zu installieren, sondern musste irgendwann laufen npm install -g babel-cli, was mein Problem löste. Vielleicht nicht die Antwort, aber definitiv eine mögliche Lösung ...


0

Arbeitete für mich zB

./node_modules/.bin/babel --version
./node_modules/.bin/babel src/main.js

0

Für diejenigen, die Yarn als Paketmanager anstelle von npm verwenden:

yarn global add babel-cli

0

Dies funktionierte für mich in package.json als npm-Skript, aber es scheint zu lange zu dauern, bis ich die Pakete gefunden habe, obwohl ich sie als Entwicklerabhängigkeiten habe. Es scheint auch zu lang.

"babel": "npx -p @babel/cli -p @babel/core babel --version"

Was am Ende gelöst wurde, war viel einfacher, aber auch lustig

npm install

Ich dachte, ich hätte das schon gemacht, aber ich denke, etwas musste wieder aufgebaut werden. Dann einfach:

"babel": "babel --version"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.