Node.js 6.x 版本原生不支持 ES6 的 export 和 import 模块化语法。本文介绍如何通过 Babel 工具进行编译,将 ES6 代码转换为 Node.js 支持的 CommonJS 格式。详细说明了在 package.json 中添加 Babel 配置、安装相关依赖模块,以及使用命令行执行转换的具体步骤,使开发者能在 Node.js 环境中使用 async/await 等现代特性。
Node.js 对 ES6 模块的支持现状
Node.js 6.x 版本尚未原生支持 export 和 import 语法。
import 与 export 属于 ES6 标准中的模块化导入与导出机制,Node.js 当前版本无法直接运行,必须借助 Babel 进行编译处理,将其转换为 Node.js 可识别的模块化代码(关于 Node.js 模块化的更多内容,可参考其他相关技术文章)。
在无法直接使用新语法的场景下,开发者可继续沿用传统的 exports 和 require 方式。
示例文件 test.js 的代码如下:
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
add (){
this.x = this.x ? this.x : 1;
this.y = this.y ? this.y : 2;
return this.x + this.y;
}
}
const PI = 3.1415926;
exports.Point = Point;
exports.PI = PI;
let a = new Point();
console.log(a.add());
示例文件 test2.js 的代码如下:
let {Point,PI} = require('./test.js');
class Point2 extends Point{
//add();
}
let b = new Point2();
console.log(b.add());
console.log(PI);
通过 Babel 实现 Export 和 Import 支持
若需使用 Babel 来支持 export 和 import 语法,需进行以下配置。
首先,在 package.json 文件中增加 Babel 的相关配置项。
"babel": {
"presets": ["es2015"]
},
"scripts": {
"start": "node app/51job.js",
"build": "babel src -d app"
},
接着,安装 Babel 所需的依赖模块。
npm install --save-dev babel-cli
npm install babel-preset-es2015 --save-dev
在命令行中执行 npm run build 命令,即可将 src 目录下的所有 JavaScript 文件转换为标准的 JavaScript 代码并输出至 lib 目录。转换完成后,async 和 await 语法均可正常使用。
以上即为本文的全部内容,希望对各位的学习有所帮助,也欢迎大家继续支持本站。