web-dev-qa-db-ja.com

npmスクリプト「babel:コマンドが見つかりません」でbabelを実行できません

始めるために私は走った:

npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 

ここに私のpackage.jsonがあります:

   {
      "scripts": {
        "build": "babel src -d dist"
      },
      "devDependencies": {
        "babel-cli": "^6.6.5",
        "babel-core": "^6.7.2",
        "babel-preset-es2015": "^6.6.0",
        "babel-preset-stage-0": "^6.5.0"
      }
    }

これが私の.babelrcファイルです。

{
  "presets": ["es2015", "stage-0"]
}

私のファイル構造は次のとおりです。

- Root
    - src
        - client 
        - server
        - test  
    - dist 
    - package.json

ルートフォルダーからnpm run buildを呼び出しています。ソースフォルダーをdistフォルダーにコンパイルすることを期待しています。実行すると、このエラーが表示されます。

> babel src -d dist

sh: babel: command not found

npm ERR! Darwin 15.2.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build"
npm ERR! node v5.8.0
npm ERR! npm  v3.7.3
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! [email protected] build: `babel src -d dist`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected] build script 'babel src -d dist'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the redacted package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     babel src -d dist
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs redacted
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls redacted
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/user/redacted/npm-debug.log

ご覧のとおり、私はbabel-cliをインストールし、プリセットをインストールしましたが、すべてがbabelのドキュメントに従って正常に動作していると思います。

なぜ機能しないのかについてのアイデアはありますか? babel npmファイルが欠落していませんか? 「babel src -d dist」は間違っていますか?

あなたが提供できる助けをありがとう!

別のフォルダを作成して同じ手順を実行しましたが、完全に機能しました。何らかの理由で、このディレクトリで機能していません。

17
Justin

Devパッケージをインストールするために「npm install」を実行しましたか?

4
s.xie

私は最近同じ問題に出くわしました。 node_modulesフォルダーを削除してnpm installは再び問題を修正しません。

このエラーが発生する理由は、プロジェクトの依存関係としてではなく、グローバルにbabel-cliをインストールする必要があるためです。

実行npm install -g babel-cliをグローバルにインストールします。

Babel-preset-es2015は、プロジェクトのdev依存関係としてインストールできますnpm install --save-dev babel-preset-es2015

13
tom

Babel-cliをグローバルにインストールすることは絶対にしないでください。実際には、公式ドキュメントから 具体的には段落全体に指示しないように をインストールする必要があります。

編集package.json >>という名前のキーを持つスクリプトを追加します。たとえば、buildという値と./node_modules/.bin/babel <commands>

buildと呼んだ場合は、npm run buildと入力してください。

10
dylanh724

./node_modules/.bin$PATHにないため、エラーが発生します。 ./node_modules/.binは、すべての実行可能バイナリが見つかる場所です。

ドキュメント で推奨されているように、node_modules内のbabel cliを参照できます。

$ ./node_modules/.bin/babel src -d lib

npm run buildコマンドを変更して、これを使用できます。

"scripts": {
    "build": "./node_modules/.bin/babel src -d dist"
},
7
gnerkus

上記の答えの多くは正しいです。

./node_modules/.binが$PATHにないため、エラーが発生します。 ./node_modules/.binは、すべての実行可能バイナリが見つかる場所です。

私がやったのは、zshrcファイルに単純な動的エイリアス関数を作成したことです。

# Babel
function bbl() {
    ./node_modules/.bin/babel "$@"
}

これでb​​abelの代わりにbblを使用できます

bbl --version
6.24.1 (babel-core 6.25.0)
0
Ahmad Awais