不同版本的Node.js對Babel有不同的支持力度本姥。為了讓Node.js支持所需的ES6語法,可以加入Babel的支持矛市。
檢測ES6
可以使用es-checker來檢測當前Node.js對ES6的支持情況较沪。
使用命令,全局安裝es-checker
:
npm install -g es-checker
安裝好之后饥努,執(zhí)行以下命令來查看Node.js對ES6的支持情況。
es-checker
可以從輸出中查看當前版本(v6.10.2)的Node.js對ES6的支持情況八回。
ECMAScript 6 Feature Detection (v1.4.1)
=========================================
Passes 38 feature Detections
Your runtime supports 90% of ECMAScript 6
=========================================
添加ES6支持
首先酷愧,使用npm init
初始化npm工作目錄,生成package.json
文件缠诅。
npm init -y
接下來溶浴,需要安裝Babel-cli。全局安裝和本地安裝都可以管引。
// 全局安裝
npm install babel-cli -g
// 本地安裝
npm install babel-cli --save
然后士败,安裝babel-preset-es2015來支持ES6的語法。
npm install babel-preset-es2015 --save
安裝完之后褥伴,還需要添加一個名為.babelrc
的配置文件谅将。方便babel-cli
使用babel-preset-es2015
。文件內(nèi)容如下:
{
"presets": [
"es2015"
],
"plugins": []
}
測試ES6
使用es-checker
測試Node.js的時候重慢,發(fā)現(xiàn)Node.js不支持import
語法饥臂。我們可以測試import
來驗證babel的支持程度。
創(chuàng)建一個a.js文件似踱,內(nèi)容如下:
// a.js
module.exports = 'a';
再創(chuàng)建一個index.js文件隅熙,引用a.js。內(nèi)容如下:
// index.js
import './a'
console.log(a);
直接使用Node.js執(zhí)行index.js:
node index.js
執(zhí)行結(jié)果會報錯:
import a from './a';
^^^^^^
SyntaxError: Unexpected token import
可以得知核芽,Node.js不支持import
語法猛们。
接下來,使用babel來執(zhí)行index.js狞洋。
全局安裝的檢測比較簡單:
babel-node index.js
結(jié)果打印出a
:
a
本地安裝的話,可以使用npm script
來執(zhí)行命令绿店。在package.json
文件的scripts添加命令"babel": "babel-node index.js"
吉懊,然后執(zhí)行:
npm run babel
可以看到控制臺有打印出結(jié)果。
a
對比發(fā)現(xiàn)假勿,可以看出Babel能補充Node.js不支持的ES6語法借嗽。