详解使用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的前后端分离的思考与实践(四)安全问题解决方案
Sep 26 NodeJs
nodejs实现HTTPS发起POST请求
Apr 23 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
nodejs入门教程三:调用内部和外部方法示例
Apr 24 NodeJs
nodejs模块学习之connect解析
Jul 05 NodeJs
nodejs中安装ghost出错的原因及解决方法
Oct 23 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
使用npm安装最新版本nodejs
Jan 18 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 NodeJs
浅谈使用nodejs搭建web服务器的过程
Jul 20 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 str_pad 函数使用详解
2009/01/13 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
php获取图片信息的方法详解
2015/12/10 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
JavaScript实现数值自动增加动画
2017/12/28 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
jQuery操作动画完整实例分析
2020/01/10 jQuery
JS实现简易留言板增删功能
2020/02/08 Javascript
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python编程快速上手——Excel表格创建乘法表案例分析
2020/02/28 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
指针和引用有什么区别
2013/01/13 面试题
好的演讲稿开场白
2013/12/30 职场文书
网站美工岗位职责
2014/04/02 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
个人催款函范文
2015/06/24 职场文书
外出考察学习心得体会
2016/01/18 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang