严格模式
与es中提出的严格模式相同,node中使用ES6模式的类和let时,必须需要使用严格模式
兼容性
node 各版本对ES6的兼容性 https://node.green/, Node.js 6.x 已经支持 90% 的 ES6 特性
-
已经分发并默认开启的特性;
参见 -
已经分发,但需要使用 –harmony 参数开启的特性;(node --harmony app.js)
- Symbol.toStringTag
- Array.prototype.includes
- ......
配置环境
初始化
npm init -y
安装babel
npm install --save-dev babel-cli babel-preset-env
安装官网上介绍的操作就行,https://www.babeljs.cn/。创建.babelrc 文件
{
"presets": ["env"]
}
检查对es6的支持情况
安装es-checker
npm install --save-dev es-checker
借助npx工具运行es-checker
npx es-checker
查看结果,参见下方
es6可用情况
node中使用ES6的几种方法
- node版本为6.X以下时,文件顶部使用"use strict"
当本身node版本比较高时,不需要使用"use strict",也可以使用es6,具体参见兼容性链接,import、export即使使用了"use strict",也不行,需要另作处理 - 采用.mjs后缀文件名,运行 node --experimental-modules 文件名.mjs
使用上述命令可以解决import、export问题 - package.json文件下直接配置"type": "module"
可以解决import、export问题
ES6 模块(ESM) | CommonJS 模块(CJS) |
---|---|
import加载 | require()加载 |
export导出 | module.exports导出 |
import命令则是异步加载 | require()是同步加载,后面的代码必须等待这个命令执行完,才会执行 |
网友评论