nodejs對es6的支持並不好,像class, import這些關鍵字,react的jsx都無法使用。但是babel可以將這些都轉化爲es5。此處講講如何在node端使用babel。
babel-register可以理解成一個小插件,將es6的東西轉成es5,github地址:https://github.com/babel/babel/tree/master/packages/babel-register。使用很簡單,只需要在文件中加入
require('babel-register');
即可。它還可以接收一個babel的配置作爲參數。看看我的index.js:
var fs = require('fs');
var babelConfig = JSON.parse(fs.readFileSync('./.babelrc'));
require('babel-register')(babelConfig);
require('./func.js');
func.js:
const myFunc = () => {
console.log('hello world');
}
myFunc();
運行node index.js,成功打印出'hello world'。
注意: 入口文件index.js中不能寫es6和jsx!!!
貼一下我的.babelrc
{
"presets":["es2015","react","stage-1"],
"plugins":[]
}
npm依賴
{
"dependencies": {
"babel": "^6.23.0",
"babel-core": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-1": "^6.24.1",
"babel-register": "^6.24.1"
}
}