web-dev-qa-db-ja.com

コマンドラインで直接ノード/バベルスクリプトを実行する方法は?

私のpackage.jsonは次のようになります:

{
  "name": "99-nodetest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "babel-node --presets env app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-env": "latest"
  }
}

実行したいjsスクリプトはapp.jsです。 app.jsには新しい言語構文が含まれているため、node app.jsを使用して直接実行することはできません。

したがって、上記で定義した開始スクリプトに従って、npm startを使用してbabelで実行する必要があります。ここに問題はありません。

私の質問は、コマンドラインでcmdを直接実行する方法です、それを行うことはできますか?次のようなもの:

npm run babel-node --presets env app.js

8
joedotnot

node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js

[〜#〜] edit [〜#〜]

OPの要求に応じて更新。

13
Rodrigo Mata

npxを使用してnpmパッケージバイナリを実行できます。

Babel 7は常にローカルプロジェクトフォルダーに関連するプラグインとプリセットを解決するため、@babel/preset-envをプロジェクトにローカルにインストールする必要があります。

npm i -D @babel/preset-env

その後、babel-nodeは、プロジェクトにインストールせずにnpxで実行できます。

npx -p @babel/core -p @babel/node babel-node --presets @babel/preset-env app.js

@babel/nodeをプロジェクトにインストールすると、npxはプロジェクトローカルバージョンを優先します。


Babel 6の場合、以下のコマンドを使用できます。

npx babel-node --presets env app.js
8
Viktor Vlasenko

@ babe/nodeをグローバルにインストールします-

npm i -g @babel/node

その後、端末でbabel-nodeコマンドが使用可能になります。だから、あなたは実行することができます-

babel-node --presets env app.js

ところで、これは開発環境でのみ使用する必要がありますが、メモリ使用量が多く不必要に重いため、本番環境にはお勧めしません。

4
Ashraful Alam

素晴らしいグーレーのミューレー!これは本来あるべきよりもはるかに困難でした。

docs についてはこちらをご覧ください。 TLDR;

Babel>バージョン7.0はpackage.jsonコマンドラインから実行します。

npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node 

npx babel-node --presets @babel/preset-env imports/test.js 
2
Michael Cole

Babelノードにはbinが登録されているため、インストール時に実行可能ファイルが生成されますnode_modules/.binディレクトリ。

入力するだけで実行できます。

node_modules/.bin/babel-node --presets env app.js

長いnodeまたは代替のnpxバージョンと同じことを達成します。

0
Mat Lipe