详解使用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的压缩文件模块archiver用法示例
Jan 18 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
Nodejs 获取时间加手机标识的32位标识实现代码
Mar 07 NodeJs
Nodejs之TCP服务端与客户端聊天程序详解
Jul 07 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
nodejs取得当前执行路径的方法
May 13 NodeJs
解决nodejs的npm命令无反应的问题
May 17 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 NodeJs
nodejs实现日志读取、日志查找及日志刷新的方法分析
May 20 NodeJs
Nodejs 识别图片类型的方法
Aug 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
PHP图片上传类带图片显示
2006/11/25 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
PHP中echo和print的区别
2014/08/28 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
vue 解决data中定义图片相对路径页面不显示的问题
2020/08/13 Javascript
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
英国名牌男装店:Standout
2021/02/17 全球购物
工地门卫岗位职责
2013/12/30 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
同乡会致辞
2015/07/30 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
spring注解 @PropertySource配置数据源全流程
2022/03/25 Java/Android