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"
}
}