前言
nodejs仍未支持import/export语法,需要安装必要的npm包–babel,使用babel将js文件编译成node.js支持的commonjs格式的代码。
安装依赖
yarn add babel-register babel-preset-env -D
文档结构
│ .babelrc
│ package.json
│ yarn.lock
│
└─src
a.js
index.js
print.js
index.js
require('babel-register')
require('./print')
print.js
import a from './a'
a.js
console.log('aaa')
babel配置文件 .babelrc
{
"plugins": [
"transform-es2015-modules-commonjs"
]
}
编译
原理
babel-register就是通过改写node的require方法,添加钩子,通过 node 引入的带 .es6, .es, .jsx 和 .js 后缀的所有后续文件都将会被 Babel 转译。
在require(‘babel-register’)时,Babel会在当前目录查找.babelrc配置文件,如果不存在,就遍历当前目录树,知道找到.babelrc为止。
插件transform-es2015-modules-commonjs可以将es6格式的代码转成commonjs格式的。