详解使用vscode+es6写nodejs服务端调试配置


Posted in NodeJs onSeptember 21, 2017

前端的小伙伴们在babel等的加持下,已经可以愉快的使用es6来写代码了。

然后对于服务端的nodejs就有点坑爹了,虽然原生支持了es6,但是只是部分支持,一些不支持的特性(比如module)使用了就会报错,所以如果想使用完整的es6来写服务端nodejs,我们还是离不开babel。

下面介绍一下在vscode中使用es6写nodejs的配置方法。

1.首先在根目录下建立.babelrc文件,写入babel配置,我的配置如下,记得npm安装babel及你需要的presets或者plugin。

{
 "presets": [
 "es2015",
 "stage-3"
 ]
}

2.其实此时已经可以通过babel-node来执行你的es6代码了。

babel-node src/index.js

然而这样的话,vscode里面是无法调试的。所以我们得换个思路,首先将源码使用babel转换,然后执行转换后的代码,附加一份sourcemap就好了。

3.package.json中增加build命令,使用babel转换es6代码。

"scripts": {
 ......
 "build": "babel src -d dist --source-maps"
 }

4.创建一个npm task(vscode概念),用来执行npm run build

{
 // See https://go.microsoft.com/fwlink/?LinkId=733558
 // for the documentation about the tasks.json format
 "version": "0.1.0",
 "command": "npm", //执行npm命令
 "isShellCommand": true,
 "showOutput": "always",
 "suppressTaskName": true,
 "tasks": [
 {
  "taskName": "build", //task名称
  "args": [ //npm run build
  "run",
  "build"
  ],
  "isBuildCommand": true
 }
 ]
}

该文件在根目录.vscode目录下,名字是tasks.json,如果没有可以自己创建一个。

5.在vscode的调试配置文件中(.vscode -> launch.json),进行如下配置

{
 // Use IntelliSense to learn about possible Node.js debug attributes.
 // Hover to view descriptions of existing attributes.
 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
 {
  "type": "node",
  "request": "launch",
  "name": "启动程序",
  "program": "${workspaceRoot}\\src\\index.js",
  "sourceMaps": true, //sourcemap打开
  "outFiles": [
  "${workspaceRoot}\\dist\\index.js"
  ], //源映射,指定实际执行文件
  "preLaunchTask": "build" //首先执行build task
 },
 {
  "type": "node",
  "request": "attach",
  "name": "附加到端口",
  "address": "localhost",
  "port": 5858
 }
 ]
}

主要干了这几件事:

  • 开启source-map,以便追踪到es6源码
  • 运行前先执行build,编译es6源码
  • 执行和调试编译后的代码

OK,现在我们就可以愉快的在vscode里用es6写nodejs了,撒花~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs读取memcache示例分享
Jan 02 NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
nodejs调取微信收货地址的方法
Dec 20 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
webpack打包nodejs项目的方法
Sep 26 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs中使用archive压缩文件的实现代码
Nov 26 NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 NodeJs
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
Aug 20 NodeJs
NodeJs内存占用过高的排查实战记录
May 10 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 #NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 #NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 #NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 #NodeJs
详解nodejs中express搭建权限管理系统
Sep 15 #NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 #NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 #NodeJs
You might like
一个程序下载的管理程序(三)
2006/10/09 PHP
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
Javascript图像处理—平滑处理实现原理
2012/12/28 Javascript
javascript实现浏览器窗口传递参数的方法
2014/09/03 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
11个Javascript小技巧帮你提升代码质量(小结)
2020/12/28 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
从源码解析Python的Flask框架中request对象的用法
2016/06/02 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
军人违纪检讨书
2014/02/04 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
五年级学生评语
2014/04/22 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
python - asyncio异步编程
2021/04/06 Python
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android