详解使用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中自定义事件实例
Jun 20 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
Nodejs初级阶段之express
Nov 23 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
May 15 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
NodeJS读取分析Nginx错误日志的方法
May 14 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
Nodejs环境实现socket通信过程解析
Jul 03 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
微信公众平台DEMO(PHP)
2016/05/04 PHP
php图片添加水印例子
2016/07/20 PHP
浅谈PHP进程管理
2019/03/08 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
详谈javascript中DOM的基本属性
2015/02/26 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
python实现将文本转换成语音的方法
2015/05/28 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
详解python logging日志传输
2020/07/01 Python
python中remove函数的踩坑记录
2021/01/04 Python
华润集团网上药店:健一网
2016/09/19 全球购物
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
教师演讲稿范文
2014/01/08 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
Python实现聚类K-means算法详解
2022/07/15 Python