require hook of BabelJS (以前の名前は6to5)を使用して es6features でノードアプリを実行します:
// run.js
require("babel/register");
require("./app.js6");
node run.js
を呼び出して、app.js6を実行します。 BabelJSをインストールし、es6featuresを使用するプロジェクトごとにrun.jsを提供する必要があります。 nodejs6 app.js6
のような呼び出しを好むでしょう。このシステムを独立して実現するにはどうすればよいですか(UnixおよびWindows)?
babel-cli
およびbabel-preset-es2015
(別名ES6)の依存関係をアプリのpackage.jsonファイルに追加し、start
スクリプトを定義します。
{
"dependencies": {
"babel-cli": "^6.0.0",
"babel-preset-es2015": "^6.0.0"
},
"scripts": {
"start": "babel-node --presets es2015 app.js"
}
}
その後、次のコマンドを実行するだけでアプリを実行できます。
npm start
Babelの使用を中止することに決めた場合(たとえば、Node.jsがすべてのES6機能をサポートした後)、package.jsonから削除できます。
{
"dependencies": {},
"scripts": {
"start": "node app.js"
}
}
この利点の1つは、アプリを実行するコマンドが同じままであることです。これは、他の開発者と協力している場合に役立ちます。
設定方法es6をサポートするnode.jsアプリとファイル変更時のサーバーリロード。
1.ターミナルでプロジェクトのメインディレクトリに移動します
npm init
//プロジェクトのpackage.jsonを作成
2.インストールの依存関係
npm install --save-dev babel
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 //*1
npm install --save-dev nodemon
1-ステージ1または2にすることもできます。使用するesの機能によって異なります
3. package.jsonファイルにそのようなものを含める必要があります(確かに、パッケージのバージョンは異なりますが、問題ありません)。
"devDependencies": {
"babel": "^6.5.2",
"babel-cli": "^6.16.0",
"babel-preset-es2015": "^6.16.0",
"babel-preset-stage-0": "^6.16.0",
"nodemon": "^1.11.0"
}
4.ルートプロジェクトディレクトリに.babelrcファイルを作成します(package.jsonファイルがあります)
{
"presets": ["es2015", "stage-0"]
}
5. 2つのディレクトリを作成します。
src-es6で書き込まれたファイルのある作業ディレクトリ
dist-ここでファイルはbabelを使用してes5にコンパイルされます
プロジェクトのルートディレクトリは次のようになります。
7. package.jsonに必要なコマンドを追加します。
"scripts": {
"watch": "babel -w src/ -d dist/",
"build": "babel src/ -d dist/",
"serve": "babel -w src/ -d dist/ | nodemon --watch dist",
"test": "echo \"Error: no test specified\" && exit 1"
}
8.利用可能なコマンド:
npm run watch
// srcディレクトリの監視変更の監視を開始し、distにコンパイルします
npm run build
// srcディレクトリからdistにファイルをコンパイルします
npm run serve
//ウォッチ+ノードサーバーの起動を行っています。ファイルが変更されるたびに、distディレクトリの変更を監視しているnodemonを使用してノードサーバーを再起動します。
9.最終ノート
10.サーバーを実行し、srcディレクトリでアプリの作成を開始します。
npm run serve
あなたにとってポイントが多すぎる場合、githubで完全なウォーキングボイラープレートが利用可能です- https://github.com/maciejsikora/node-express-babel-boilerplate 。
Nodeを--harmonyフラグとともに使用して、es6機能でスクリプトを実行できます
node -r babel-register scripts.js
これが最適なソリューションです
npx babel-node scripts.js
!Babelノードは終了プロセスの場合はうまく機能せず、kexec
パッケージもこの場合は役に立ちません(私が試したように)
どちらの場合も、アプリのプリセットとプラグインを記述する.babelrc
を使用する必要があります。
npx
は、npm
またはyarn
とともにインストールされていないライブラリの実行にのみ使用しています。それ以外の場合は、npm i -g babel-cli
、次にbabel-node script.js
が必要です
nodejs6 app.js6
のような呼び出しを好むでしょう。
Babel-core apiを使用してラッパーソリューションを試すことができます。
// Save as es6.js
var babel = require("babel-core");
var argc = process.argv.length;
babel.transformFile(process.argv[argc - 1], function (err, result) {
eval(result.code);
});
node es6 thefile.js
でes6の注目のスクリプトを実行します
リファレンス:公式 sage doc
Babel 6の時点で、babel-register
をインストールし、以下を使用する必要があります
require("babel-register");
Babel es2015プリセットも必ずインストールしてください。