Nodejs ES6
现在写前端大多数情况下会应用蛮多ES6
的语法,当你在写Node
的时候,当然也会希望使用ES6
的特性了,不然会搞得你有些沮丧,淘宝有一篇专门写了这个。不过有些时间了,不是很赞同那样做。
根据自己的理解,查了下Babel官网的介绍, 可以作如下的配置:
不同的Node
版本兼容的ES6
可以查看这里。
安装babel-preset及babel工具
根据官网的介绍,利用这个你可以指定不同的环境而不用去手动配置
plugins
, 旧的只支持当年批准的那个议案。
安装自己所需要的环境
|
|
配置.babelrc
创建.babelrc,当只写["env"]
的时候表示是兼容最新亦即包括(babel-preset-es2015, babel-preset-es2016, and babel-preset-es2017三个一起)。
因为这边是针对的Node
,这里有一个配置蛮好:
|
|
这样配置以后,babel会根据你的Node
的不同版本,自动添加不同的兼容插件,而不用你手动去加载。
配置package.json
|
|
然后最后如果plugins和presets一起也是可以的,就是需要注意这两个配置起来必须最后可以在任意一处可以输出对应的兼容的代码,否则打包出来的代码是不兼容的代码。比如没配置好那个import
的支持就尴尬了
调试
对于Nodejs的原生代码
根据nodejs官方调试文档可以得知大概有以下步骤:
nodejs内置了node-inspect当然也可以单独安装
npm i -g node-inspect
,使用命令node --inspect 代码.js
即可。(这里如果是写成node inspect 代码.js
的话是直接进入命令行的调试而不能在Chrome devtools中打开的,切记!)。在Chrome 55+的浏览器中打开
chrome://inspect
即可进行调试,或者你也可以安装NIM。
另外在Visual Studio, JetBrains WebStorm, VS Code都提供了对nodejs的友好调试,只需点击debug即可。
另外,nodejs使用的是--inspect-brk
,--debug-brk
已经被遗弃
调试Node ES6
命令行
使用命令行babel-node debug src/server.js
即可在命令行调试代码。然后用在命令行中用next
执行下一条命令, 这个里面的命令其实和在控制台调试JavaScript是保持一致的,比如当你在浏览器中调试代码里面可以设置断点之类,然后在最面板中有step
,next
等图标。
另外当使用babel-node --inspect
或者babel-node --inspect-brk
的进修然后打开Chrome浏览器中输入chrome://inspect即可进行调试。
WebStorm编辑器
在编辑器设置步骤是先打开配置搜索JavaScript在里面配置使其支持ES6。
然后在那个Debug的右边的第一个选项卡配置的Node interpreter
设置成为自己本地或者全局安装的那个babel-node.js的路径。这个babel-node是由安装babel-cli包所生成的。可以指定本项目下面的或者是全局的那个都可以。
最后在Node parameters
中设置参数由于node 8.x版本使用--inspect-brk
或者--inspect
都可以,--debug-brk
已经被遗弃或者使用
最后,大功告成,就可以愉快地在Node
下写ES6
了。以上如有不对的地方还望指教,谢谢-^.^-。
TodoList:
- 这个调试的时候发现不会热更新,笑哭,应该怎么实现呢?