描述node中使用ES6语法,很简单,网上的文章写的太复杂,我根据网上的经验折腾了一下午,最后终结了下,几乎装个babel就能用的。下面是我的使用过程,分享如何使用及遇到的问题。配置环境首先的有node环境,这个不介绍,当前我的版本是8.11.41.初始化npm init -y2.安装babel安装官网上介绍的操作就行,https://www.babeljs.cn/npm install –save-dev babel-cli babel-preset-env创建 .babelrc 文件{ “presets”: [“env”]}这时候已经配置完了,可以执行ES6语法了,但是import和export还是不支持的。检测对es6的支持情况安装es-checker来帮助我们查看对es6的支持情况。npm install –save-dev es-checker借助npx工具来运行es-checkernpx的介绍可以看这篇文章:http://www.ruanyifeng.com/blo…npx es-checker结果如下:ECMAScript 6 Feature Detection (v1.4.1)Variables √ let and const √ TDZ error for too-early access of let or const declarations √ Redefinition of const declarations not allowed √ destructuring assignments/declarations for arrays and objects √ … operator…省略内容Module × Module export command × Module import command=========================================Passes 39 feature DetectionsYour runtime supports 92% of ECMAScript 6=========================================可以看到还是有一些不支持的。测试code.babelrc{ “presets”: [“env”]}上面的配置其实就行了;但是我在看babel的文档时说设置node环境需要设置targets,于是我的配置如下,但是我试了上面的配置也是可以的,下面的仅供参考。{ “presets”: [ [ “env”, { “targets”: { “node”: “current” } } ] ]}package.json{ “name”: “node”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “scripts”: { “test”: “echo "Error: no test specified" && exit 1” }, “keywords”: [], “author”: “”, “license”: “ISC”, “devDependencies”: { “babel-cli”: “^6.26.0”, “babel-preset-env”: “^1.7.0”, “es-checker”: “^1.4.1” }}Stack.jsconst Stack = (function() { const items = new WeakMap(); class Stack { constructor() { items.set(this, []); } push(value) { let stack = items.get(this); stack.push(value); } pop() { let stack = items.get(this); return stack.pop(); } isEmpty() { let stack = items.get(this); return stack.length === 0; } size() { let stack = items.get(this); return stack.length; } print() { let stack = items.get(this); console.log(stack.toString()); } } return Stack;})();module.exports.Stack = Stack;index.jsconst { Stack } = require("./Stack.js");//import { Stack } from “./Stack”;let stack = new Stack();stack.push(“aaa”);stack.print();在控制台中执行node index.js输出aaa解决import和export不能用其实node版本9以上就已经支持了,但是需要把文件名改成*.mjs,并且加上–experimental-modules 选项。升级node介绍一个node升级的好工具,名字就叫n,具体可以去npm上查看。npm install -g n执行如下命令进行升级n stable或n 10.15.3结果 install : node-v11.12.0 mkdir : /usr/local/n/versions/node/11.12.0 fetch : https://nodejs.org/dist/v11.12.0/node-v11.12.0-darwin-x64.tar.gz######################################################################## 100.0% installed : v11.12.0升级成功后,①把文件都改成*.mjs,②并把代码改成import和export的方式,执行node –experimental-modules arithmetic/index.mjs 上面两步都不能少。不然就执行不成功。