详解使用vscode+es6写nodejs服务端调试配置
作者:sky0014 发布时间:2023-07-17 17:17:37
标签:vscode,es6,nodejs
前端的小伙伴们在babel等的加持下,已经可以愉快的使用es6来写代码了。
然后对于服务端的nodejs就有点坑爹了,虽然原生支持了es6,但是只是部分支持,一些不支持的特性(比如module)使用了就会报错,所以如果想使用完整的es6来写服务端nodejs,我们还是离不开babel。
下面介绍一下在vscode中使用es6写nodejs的配置方法。
1.首先在根目录下建立.babelrc文件,写入babel配置,我的配置如下,记得npm安 * abel及你需要的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了,撒花~
来源:http://www.cnblogs.com/DarkMaster/p/6736424.html


猜你喜欢
- 一、常见的异常1、NameError 未定义变量异常print(a)# 输出:NameError: name 'a' is
- 1.开发环境 vue+element2.电脑系统 windows 10 专业版3.在开发的过程中,我们总是会使用到 git管理代码!使用方法
- 1. 为什么要使用协程在上一篇中,我们从生成器的基本认识与使用,成功过渡到了协程。但一定有许多人,只知道协程是个什么东西,但并不知道为什么要
- 本文简单总结了一下Python处理时间和日期方面的模块,主要就是datetime、time、calendar三个模块的使用,希望这篇文章对于
- 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar第二步:导入下载的JDB
- 如何用javascript来判定选择单选的radio哪个被选择,多选的checkbox有那几个被选中? <!DOCTYPE
- 本文实例为大家分享了python实现QQ空间自动点赞的具体代码,供大家参考,具体内容如下项目github地址使用python实现qq空间自动
- 所有标准的序列操作对字符串都适用,但字符串是不可变的字符串常量:单引号:‘spa"m'双引号:"spa'
- 我们在编写网页的时候不可避免的会遇到输入框,那么怎么设计输入框才能更加优雅呢?不同的人会有不同的答案,下面分享一个比较不错的设计。效果图细节
- 痛点json 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,在通信过程中大量被使用。 你是否遇到过json中某个字段
- 继续还是工作中使用colly,不管是官网,还是网上的一些文章(其实90%就是把官网的案例抄过去),都是一样的格式,没有讲到post,测试了几
- 一、使用全局变量保存单例这是最简单的实现方法function Person(){ this.createTime=new Da
- new Array() new Array(len) new Array([item0,[item1,[item2,...]]] 使用数组对
- 最近导师让我跑模型,生物信息方向的,我一个学计算机的,好多东西都看不明白。现在的方向大致是,用深度学习的模型预测病毒感染人类的风险。既然是病
- CSS样式和JavaScript脚本是应该放在外部文件中呢?还是把它们放在页面本身之内呢?如何处理是关于一些性能规则的思维,就这些问题,我们
- 抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的
- 介绍百度aip模块是用于实现百度云与用户接口,简单来说就是使用百度云所拥有的人工智能模块。模块使用pip install baidu-aip
- 假设我们有这样一种数据:data = [ ("apple&quo
- 当我们在使用TestNG时,发现它有一个非常好用的参数化功能。当你的测试用例有固定的参数和断言结果时,它可以相似用例的节省用例的个数。例子如
- 方法调用行为方法调用比其他类型的查找略为复杂一点。 以下是一些注意事项: 在方法查找过程中,如果某方法抛