详解使用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 Web应用监听sock文件实例
Feb 18 NodeJs
PHP和NodeJs开发的应用如何共用Session
Apr 16 NodeJs
nodejs爬虫抓取数据之编码问题
Jul 03 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
nodejs搭建本地http服务器教程
Mar 13 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
详解nodejs异步I/O和事件循环
Jun 07 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
nodejs中用npm初始化来创建package.json的实例讲解
Oct 10 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 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经典的给图片加水印程序
2006/12/06 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
2016/09/02 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
ES6中字符串的使用方法扩展
2019/06/04 Javascript
js实现秒表计时器
2019/12/16 Javascript
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
python实现证件照换底功能
2019/08/20 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
python两种注释用法的示例
2020/10/09 Python
人力资源管理专业自荐书范文
2014/02/10 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
公司总经理任命书
2014/06/05 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2014年领导班子工作总结
2014/12/11 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
MySQL系列之开篇 MySQL关系型数据库基础概念
2021/07/02 MySQL
python实现简单的聊天小程序
2021/07/07 Python
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript