babel-node use import with babel7.5

babel 7.5.5 环境中支持 import 与 export

node 与 babel 默认不支持 import export 语法,需要转义,在测试、开发环境中可以使用临时的命令行方式。

安装 babel

1
npm i -D @babel/core @babel/node @babel/preset-env

package.json 中添加 babel 配置

1
2
3
4
5
6
7
"babel": {
"presets": [
[
"@babel/preset-env"
]
]
}

如果添加 .babelrc 文件,则不会读取。

安装完成后,使用 babel-node 命令执行:

1
npx babel-node test.js

例子:

test.js

1
2
3
4
5
import { a, modify } from './a.js';

console.log('a: ', a);
modify();
console.log('a: ', a);

a.js

1
2
3
4
5
export let a = 1;

export const modify = () => {
a = 2;
};

运行结果:

1
2
3
git:(master) ✗ npx babel-node test.js
a: 1
a: 2

引入的模块会作为本地变量,如果有修改,则会影响本地的值.