详解使用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实现遍历文件夹并统计文件大小
May 28 NodeJs
nodejs的压缩文件模块archiver用法示例
Jan 18 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
nodejs前端自动化构建环境的搭建
Jul 26 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 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
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
分享十款最出色的PHP安全开发库中文详细介绍
2015/03/22 PHP
php获取图片信息的方法详解
2015/12/10 PHP
PHP实现图片压缩
2020/09/09 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
js实现的xml对象转json功能示例
2016/12/24 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python清空文件并替换内容的实例
2018/10/22 Python
汉森批发:Hansen Wholesale
2018/05/24 全球购物
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
长青弘远的面试题
2012/06/09 面试题
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
大四本科生的自我评价
2013/12/30 职场文书
精彩自我鉴定
2014/01/16 职场文书
电力培训心得体会
2014/09/02 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
运动员代表致辞
2015/07/29 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
Ruby处理YAML和json数据
2022/04/18 Ruby