2016-11-24 3 views
1

ich Babel vor Ort in meinem Projekt mit dem folgenden Befehl installiert:Babel nicht funktioniert, gibt CLI Fehler

npm install babel-cli babel-core babel-preset-es2015 --save-dev 

Das gibt mir die folgende Ausgabe in package.json:

{ 
    "name": "my_project", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "build": "babel src -d lib" 
    }, 
    "scripts": { 
    "build": "babel --presets es2015 src -d lib" 
    }, 
    "keywords": [], 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "babel": "^6.5.2", 
    "babel-cli": "^6.18.0", 
    "babel-core": "^6.18.2", 
    "babel-loader": "^6.2.8", 
    "babel-preset-es2015": "^6.18.0", 
    "webpack": "^1.13.3" 
    }, 
    "dependencies": { 
    "lodash": "^4.17.2" 
    } 
} 

I bin mir nicht sicher, aber es sieht so aus, als ob es erfolgreich installiert wurde. Aber wenn ich versuche npm run babel zu laufen erhalte ich:

npm ERR! Darwin 15.3.0 
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "babel" 
npm ERR! node v7.0.0 
npm ERR! npm v4.0.2 

npm ERR! missing script: babel 
npm ERR! 
npm ERR! If you need help, you may report this error at: 
npm ERR!  <https://github.com/npm/npm/issues> 

npm ERR! Please include the following file with any support request: 
nam ERR!  /Path/To/My/Project/npm-debug.log 

Warum nicht Babel arbeiten? In der package.json-Datei ist enthalten:

+0

Haben Sie es in Ihrer Webpack-Konfiguration definiert? – Pineda

+0

Mögliches Duplikat von [Webpack beginnt, Importfehler] (http://stackoverflow.com/questions/40775977/webpack-getting-started-import-error) – Pineda

+0

Wenn nicht, lesen Sie die Antwort auf ein (ähnliches Problem) [ http://stackoverflow.com/a/40776313/2902660] – Pineda

Antwort

3

So laufen Sie npm run babel

und es sagte npm ERR! missing script: babel

können Sie dies bedeutete: npm run build


Zwei Dinge nachzudenken:

  1. npm run

    Dies führt einen beliebigen Befehl aus dem "scripts" -Objekt eines Pakets aus.

  2. babel ist kein Skript in Ihrem package.json, sondern ein Transpiler für JavaScript, das ES6 bis ES5 umwandelt.

so, wenn Sie npm run build ausführen, wird das führen Sie den Befehl build hier definiert:

"scripts": { 
    "build": "babel src -d lib" 
    }, 

Ich sehe auch ein Duplikat ist von scripts Objekt.

1

Es gibt verschiedene Möglichkeiten, installierte npm-Programme auszuführen.

Der einfachste Weg ist es, es auch global zu installieren. In Ihrem Fall benötigen Sie nur babel-cli, um in der Befehlszeile verfügbar zu sein. so wird npm install -g babel-cli tun.

Wenn Sie es nur lokal installieren möchten, ist die ausführbare Datei babel auch unter node_modules/.bin/babel verfügbar. Aber es ist sicher viel Tipparbeit für einen Befehl.

Die andere Möglichkeit, die Sie versuchen, ist npm-run-scripts. In diesem Fall müssen Sie das Skript in Ihrem package.json definieren. Sie haben bereits ein build Skript, das Sie wie npm run build ausführen können. Also für npm run babel müssen Sie die gleiche Form von Skriptdefinition:

"scripts": { 
    "build": "babel src -d lib", 
    "babel": "babel script.js --out-file script-compiled.js" // For example 
} 
... 

Diese meist verwendet wird, eine Abkürzung für einen Befehl zu haben, die Sie häufig wie ein Build-Skript ausgeführt werden sollen.

Sie können auch zusätzliche Argumente zu einem npm Skript mit dieser Syntax bieten:

npm run babel -- --presets es2015

Beachten Sie die zusätzlichen -- hier.

Es gibt noch eine andere Möglichkeit, wo Sie ein Paket einmal global und Link, um es aus verschiedenen Projekten zu installieren:

npm install -g babel-cli und in Ihrem Projekt direcotory npm link babel-cli.

Die gebräuchlichste Methode ist die einfachste, bei der Sie ausführbare Pakete (Befehlszeilenschnittstellen) sowohl global als auch lokal installieren.

Verwandte Themen