vscode 使用ES6调试js
创始人
2024-03-23 01:36:08
0

vscode 调试js使用ES6

vscode调试

vscode使用node.js调试,默认是不支持ES6语法的,所以解决方案也十分简单,对ES6语法进行转换即可。对ES6语法转换我们可以通过babel这个js编译器对ES6语法进行转换即可。

什么是 Babel?

Babel 是一个 JavaScript compiler,主要用于在当前和旧的浏览器或环境中,将 ECMAScript 2015+(ES6) 代码转换为 JavaScript 向后兼容版本的代码。

解决方案

安装Babel

安装babel十分简单,使用npm进行安装即可

npm install babel-cli babel-preset-env babel-preset-es2015 -D

修改package.json

在package.json中添加以下两个选项,scripts用于添加脚本命令,平时的npm run build都是寻找package.json文件并执行里面设置的脚本命令。

  "scripts": {"js:test": "babel src -d build -s", //babel的脚本指令},"babel": { //对babel的设置"presets": [  //要处理的语法"es2015"],"sourceMaps": true, //生成映射文件.map"retainLines": true}

下面对这个babel命令进行解析

// src代表源文件命令 
// build代表要编译文件存放目录 
// -d代表编译文件存放目录不存在时自动创建
// -s代表生成.map文件,调试时需要的文件
babel src -d build -s

在终端通过npm运行脚本命令

/***发现目录下生成一个build文件夹*文件夹有两类文件,.js文件和.js.map文件*.js文件为编译后文件(已经将里面的import等语法进行传化了,是vscode能运行的文件)*.js.map文件是映射文件将编译后的.js文件和源.js文件进行关联,打断点时能调试。
*/
npm run test

配置vscode

配置launch.json

在项目目录下的.vscode文件中创建一个叫launch.json文件。

注意点:

  • **“program”**为运行程序路径,应该写编译后的.js文件地址,因为调试时,我们都是直接对源文件进行调试的,所以这里的文件执行路径等于:工作目录+打包文件路径+源文件名称
  • **“preLaunchTask”**要运行的脚本任务名称,在tasks.json中配置,配置这个的原因是:你每次改源代码时都需要重新编译ES6语法形成新的.js文件,所以我们需要配置能在命令行上运行的任务
  • **“sourceMaps”**代表有映射文件存在(.js.map)
{// Use IntelliSense to learn about possible 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": "es6",//${workspaceFolder}当前工作目录,${fileBasename}当前运行文件名称//这里必须设置文编译后的js文件,因为vscode不认ES//测试运行文件"program": "${workspaceFolder}/build/${fileBasename}",// 如果存在SourceMap就使用"sourceMaps": true,  // 调试之前要做的任务名(运行tasks.json文件里面的脚本任务)"preLaunchTask": "jstest",   // 是否启动后自动停止程序"stopOnEntry": false,  // 生成的代码中,如果无法映射回源代码,就自动单步执行"smartStep": true, //编译文件输出地址"outFiles": ["${workspaceFolder}/build/**"]}]
}
配置tasks.json

配置任务,每次对文件测试时会运行改任务,重新编译工程src下的源文件

{"version": "2.0.0","tasks": [{"label": "jstest",  // 该任务的名字,只需要增加这一条即可"type": "npm","script": "js:test",  //任务等价于 npm run js:test"problemMatcher": []}]
}

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...