详解使用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服务器(10):处理上传图片
Dec 18 NodeJs
Nodejs Express4.x开发框架随手笔记
Nov 23 NodeJs
nodejs学习笔记之路由
Mar 27 NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
nodejs中的异步编程知识点详解
Jan 17 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 NodeJs
详解nodejs内置模块
May 06 NodeJs
详解NodeJS模块化
Jun 15 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php blowfish加密解密算法
2016/07/02 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
js加解密 脚本解密
2008/02/22 Javascript
使用js画图之画切线
2015/01/12 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
JavaScript改变CSS样式的方法汇总
2015/05/07 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
python和shell变量互相传递的几种方法
2013/11/20 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
python导入pandas具体步骤方法
2019/06/23 Python
set在python里的含义和用法
2019/06/24 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
数据库的约束含义
2012/09/09 面试题
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
大学生十八大感想
2015/08/11 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
JavaScript执行机制详细介绍
2021/12/06 Javascript
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android
vue如何清除浏览器历史栈
2022/05/25 Vue.js