描述在Node中使用ES6语法,很简单,但是网上写的文章太复杂了。我根据网上的经验折腾了一个下午,终于结束了。几乎只要安装babel就可以使用。下面是我的使用过程,分享一下使用方法和遇到的问题。配置环境先从node环境开始,这里就不介绍了。我当前的版本是8.11.41。初始化npminit-y2。安装babel,安装官网描述的操作,https://www.babeljs.cn/npminstall--save-devbabel-clibabel-preset-env创建.babelrc文件{"presets":["env"]}此时已经配置完成,可以执行ES6语法,但是仍然不支持导入导出。Detectsupportfores6安装es-checker来帮助我们检查对es6的支持。npminstall--save-deves-checker使用npx工具运行es-checkernpx可以看这篇文章:http://www.ruanyifeng.com/blo...npxes-checker运行结果如下:ECMAScript6特征检测(v1.4.1)变量√let和const√过早访问let或const声明的TDZ错误√不允许重新定义const声明√数组和对象的解构赋值/声明√...运算符...省略内容模块×模块导出命令×模块导入命令==========================================通过39项功能检测您的运行时支持92%的ECMAScript6============================================可见还是有一些不支持的。测试code.babelrc{"presets":["env"]}上面的配置其实没问题;但是看babel文档的时候说设置node环境需要设置targets,所以我的配置如下,不过我试了上面的配置也是可以的,以下仅供参考。{“预设”:[[“环境”,{“目标”:{“节点”:“当前”}}]]}package.json{“名称”:“节点”,“版本”:“1.0.0”,"description":"","main":"index.js","scripts":{"test":"echo\"Error:notestspecified\"&&exit1"},"keywords":[],"author":"","license":"ISC","devDependencies":{"babel-cli":"^6.26.0","babel-preset-env":"^1.7.0","es-checker":"^1.4.1"}}Stack.jsconstStack=(function(){constitems=newWeakMap();classStack{constructor(){items.set(this,[]);}push(值){letstack=items.get(this);stack.push(value);}pop(){letstack=items.get(this);returnstack.pop();}isEmpty(){letstack=items.get(this);returnstack.length===0;}size(){letstack=items.get(this);返回stack.length;}print(){letstack=items.get(this);控制台.log(堆栈.toString());}}returnStack;})();module.exports.Stack=Stack;index.jsconst{Stack}=require("./Stack.js");//import{Stack}from"./Stack";letstack=newStack();stack.push("aaa");stack.print();在控制台执行nodeindex.js输出aaa解决import和export不能使用实际node版本9及以上已经支持,但需要将文件名改为*.mjs,并加上--experimental-升级节点的模块选项。介绍一个节点升级的好工具。名字是n。您可以在npm上查看详细信息。npminstall-gn执行以下命令升级nstable或n10.15.3结果install:node-v11.12.0mkdir:/usr/local/n/versions/node/11.12.0fetch:https://nodejs.org/dist/v11.12.0/node-v11.12.0-darwin-x64.tar.gz############################################################################100.0%安装:v11.12.0升级成功最后,①把文件改成*.mjs,②改代码导入导出,执行node--experimental-modulesarithmetic/index.mjs。以上两步缺一不可。否则,执行将失败。
