详解使用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 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
NodeJS制作爬虫全过程
Dec 22 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
Nodejs全局安装和本地安装的不同之处
Jul 04 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
nodejs acl的用户权限管理详解
Mar 14 NodeJs
详解NodeJs开发微信公众号
May 25 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
php 批量替换html标签的实例代码
2013/11/26 PHP
最常用的8款PHP调试工具
2014/07/06 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
2016/12/07 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
页面使用密码保护代码
2013/04/10 Javascript
html页面显示年月日时分秒和星期几的两种方式
2013/08/20 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
jQuery 中$(this).index与$.each的使用指南
2014/11/20 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
详解vue axios用post提交的数据格式
2018/08/07 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
python如何删除文件、目录
2020/06/23 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
数控技术应届生求职信
2013/11/13 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
青蓝工程实施方案
2014/03/27 职场文书
自主招生教师推荐信
2014/05/10 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
python实现Nao机器人的单目测距
2021/09/04 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python