2015-12-22 15 views
40

Ich habe das Babel-CLI-Tool wie von der Babel 'getting started' Seite erläutert installiert.Babel Befehl nicht gefunden

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 gibt keine package.json erstellt. npm zeigt auch die folgende Fehlermeldung:

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

Beim Versuch, babel zu laufen, bekomme ich diese:

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

Ich habe die neueste Version von NodeJS/npm installiert. Ich habe npm Update -g läuft, und ich habe meine Bash_profile Datei bearbeitet enthalten:

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

Ich habe das nicht mit anderen npm Tool wie browserify erfahren. Warum wird Babel nicht erkannt?

+1

Sie können sehen, wie mit babel-cli hier, um loszulegen: http://stackoverflow.com/questions/34483748/running-babel-cli -from-npm-script-not-working/34484065 –

+0

Wenn Sie Fisch verwenden, versuchen Sie https://github.com/oh-my-fish/plugin-node-binpath – onmyway133

Antwort

57

Es gibt zwei Probleme hier. Zuerst benötigen Sie eine package.json Datei. Npm zu sagen, ohne zu installieren, wird den npm WARN enoent ENOENT: no such file or directory Fehler werfen. Führen Sie in Ihrem Projektverzeichnis npm init aus, um eine package.json Datei für das Projekt zu generieren.

Zweitens werden lokale Binärdateien wahrscheinlich nicht gefunden, da der lokale ./node_modules/.bin nicht in $PATH ist. Es gibt einige Lösungen in How to use package installed locally in node_modules?, aber es ist möglicherweise einfacher, Ihre babel-cli-Befehle in npm-Skripten zu verpacken. Dies funktioniert, weil die Ausgabe von npm bin (node_modules/.bin) zu der PATH hinzugefügt, die Skripten zur Verfügung gestellt wird.

Hier ist ein abgespeckte Beispiel package.json, die die lokal installierten babel-cli Version zurück:

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

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

Das Einfügen von Skripten in package.json ist sehr nützlich, wird aber oft übersehen. Viel mehr in der Dokumentation: How npm handles the "scripts" field

+2

Nachdem ich die anderen Antworten in Betracht gezogen habe und mit meiner '~/.profile'-Datei experimentiert habe, um sicherzustellen, dass ich die Pakete in den lokalen' node_modules' aufrufen kann, habe ich den 'scripts'-Bereich von' package.json' geschlossen Beste Option. Sie müssen Ihren Mitarbeitern nicht sagen, dass sie ihre Profile ändern oder einen Alias ​​erstellen müssen. Ihre Skripts funktionieren einfach. –

9

Dies ist ein häufiges Problem und seine Suche nach .cmd Datei von Ihrem Stammverzeichnis, wo Sie babel-cli installiert. 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.

Befolgen Sie die folgende Antwort zu installieren babel-preset-es2015 und sehen, warum Babel dies benötigen.

babel-file-is-copied-without-being-transformed

+8

Dieser Befehl sollte wahrscheinlich './node_modules sein/.bin/babel'. – joemaller

5

Dies ist, was ich getan habe, um automatisch mein lokales Projekt node_modules/.bin Pfad zu PATH hinzuzufügen.In ~/.profile fügte ich hinzu:

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

nachladen Dann Bash Profil: source ~/.profile

1

Sie müssen Anführungszeichen um den Pfad zu Ihrer babel-Datei wie unten

“./node_modules/.bin/ hinzufügen babel "--help

3

Ich hatte das gleiche Problem. Der Ordner nodemodules wurde gelöscht und die Eingabeaufforderung wurde als Administrator geöffnet und dann npm install ausgeführt.

Alle Pakete ordnungsgemäß installiert.

5

Wenn ich diese Frage gefunden, ich war auf der Suche nach

$ npm install -g babel-cli 
+0

Sie sollten nie Sudo mit Npm verwenden müssen. Verwenden Sie nvm, um Ihre Knotenversionen zu verwalten. –

+1

'' 'npm installieren -g babel-cli''' Wird ohne sudo funktionieren. –