当前位置: 首页 > 后端技术 > Node.js

nodejsv6+不兼容ES6import-export优雅的解决方案

时间:2023-04-03 11:53:20 Node.js

nodejs已经发布了很长时间,版本日志强调从那时起nodejs已经原生支持ES6,这让很多开发者感到高兴。作者立马把原来的小服务器框架改成了ES6语法,但是:卧槽!~~~同意原生支持怎么办?import/export各种报错,加了--es_staging,都不行,之前人与人之间的信任怎么办?回去查看版本日志。Modules章节依旧是commonjs的参考方法。网上也有人说这个问题,所以肯定是不支持的。测试文件如下:'usestrict';classMain{constructor(){this.parent='thisisparentmsg';}}say(){setTimeout(()=>{console.log(this.parent);},500);}}出口默认主要;简单暴力(不)有效的解决方案“如果不支持ES6,就用babel转换~”大部分人都是这么想的。通过babel降级完整的ES6~~~然后就OK了。节点运行流畅。标签es2015转换后:'usestrict';Object.defineProperty(exports,"__esModule",{value:true});var_createClass=function(){functiondefineProperties(target,props){for(vari=0;i{console.log(this.parent);},500);}}exports.default=Main;//#sourceMappingURL=main.js.map执行通过完美!!!这是效果。而且因为转换不深,速度也降低了差不多2/3。综上所述,以上只是一个经验。相信随着nodejs的不断发展,完美支持es6也将是迟早的事情。但是,肯定会出现新的语法和新的东西。我们需要的是一种“增量式”的转换,希望对我们以后处理此类问题有所启发。