私の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
node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js
[〜#〜] edit [〜#〜]
OPの要求に応じて更新。
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
@ babe/nodeをグローバルにインストールします-
npm i -g @babel/node
その後、端末でbabel-nodeコマンドが使用可能になります。だから、あなたは実行することができます-
babel-node --presets env app.js
ところで、これは開発環境でのみ使用する必要がありますが、メモリ使用量が多く不必要に重いため、本番環境にはお勧めしません。
素晴らしいグーレーのミューレー!これは本来あるべきよりもはるかに困難でした。
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
Babelノードにはbin
が登録されているため、インストール時に実行可能ファイルが生成されますnode_modules/.bin
ディレクトリ。
入力するだけで実行できます。
node_modules/.bin/babel-node --presets env app.js
長いnode
または代替のnpx
バージョンと同じことを達成します。