前端开发基础2:VS Code和Edge的联动开发

简介: 介绍edge tools, live server两个常用插件的用法。

前端开发基础2:VS Code和Edge的联动开发

1.  创建资源

开始实验之前,您需要先创建实验相关资源。

  1. 在实验室页面,单击创建资源
  2. (可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。

说明:资源创建过程需要3~5分钟视资源不同开通时间有所差异,ACK等资源开通时间较长。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。

实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。

资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息

2.  进入VNC实验环境

  1. 进入网页环境。

在远程桌面页面中,双击Chromium网页浏览器

  1. 登录RAM用户。

2.1 浏览器启动后会默认打开阿里云的RAM用户登录页面,在RAM用户登录框中单击下一步

2.2 复制粘贴页面左上角的子用户密码用户密码输入框,单击登录

  1. 进入ECS的远程连接。

3.1 登录成功后跳转到控制台,我们在控制台的搜索框中输入ECS,然后单击云服务器ECS进入云服务器控制台。

3.2 在ECS控制台中,我们找到实验创建的ECS,点击右侧的远程连接按钮。

  1. 在远程连接中选择通过VNC远程连接中的立即登录,如果没有显示该选项,则可单击展开其他登录方式

  1. 登录VNC远程连接。

4.1 初次登录VNC远程连接时需要先设置VNC密码。单击重置VNC密码

4.2 输入两次新的VNC密码,并单击确定

4.3 VNC密码设置成功后,输入密码并单击确定

4.4 VNC登录成功后会看到实验ECS的登录界面。

说明:dev账户的登录密码为 Dev12345

3.  Edge Tools插件的安装和配置

在上一个实验中,我们为大家介绍了vscode和edge的基本用法。但是最基本的开发架构下,开发的过程中开发人员需要在vscode和edge两个软件之间反复切换,从而大大影响了开发效率,因此本次实验我们将为大家解释两款常用的Web开发插件Edge  Tools和Live Server。接下来我们将为大家介绍Edge Tools插件,通过这个插件我们可以实现vscode和edge的联动开发。

  1. Edge Tools插件的安装

在扩展管理上部输入框中输入 Edge Tools,选择 Microsoft Edge Tools for VS Code。单击安装

基本插件安装之后的效果如下,在功能导航栏出现了Edge Tools插件的功能选项。

 

2. Edge Tools插件的基本用法

2.1 我们打开Demo项目的文件夹,选择菜单 文件-> 打开文件夹...->选择 /home/dev/web,单击 打开

2.2 在资源管理器选项卡中选择index.html并点击右键,选择Open with Edge->Open Browser with DevTools菜单项。

我们发现Edge浏览器集成到了vscode编辑器中。通过这种方式开发人员即可避免频繁的切换不同的应用。

 

2.3 接下来我们点击vscode代码编辑器中的22行的左侧,在代码编辑器设置断点,然后点击网页中的button按钮。

这时我们会发现调试功能已经在vscode编译器中生效。

 

2.4 当我们在vscode编译器中进行调试时,可以通过上方的调试工具条发送调试指令。我们点击继续按钮即可让程序继续运行,点击停止按钮即可退出调试模式回到文本编辑状态。    

3. 通过Edge Tools创建调试配置文件。

3.1 通过上面的方法我们可以设置针对单个网页文件的运行和调试。对于大型项目来说网页文件往往很多,选择单文件调试往往比较麻烦。这时我们可以将Edge Tools工具配置成为vscode的默认调试方法。通过统一的调试入口启动edge运行调试网页。首先我们选择Edge Tools选项卡,单击Generate launch.json按钮,

3.2 在选择资源管理器选项卡,我们会发现在.vscode目录中,生成了launch.json配置文件。

3.3 接下来我们对launch.json文件进行配置,在"configurations":字段中找到三个"url":配置项。

3.4 将三个"url":配置项修改为如下内容。

"url": "file:///home/dev/web/index.html",

3.5 配置文件修改好之后,我们选择vscdoe的运行和调试选项卡,在选项卡的头部,可以看到调试模式下拉框,在下拉框中有两个调试选项。我们选择Launch Edge Headless and attach DevTools选项,然后点击下拉框左侧的开始调试按钮。

 

3.6 同样可以进入vscode的调试模式,完成调试工作。在此我们先退出调试模式。单击顶部的停止按钮。

3.7 接下来我们在选择Launch Edge and attach DevTools选项,再次单击开始调试按钮。

此时我们看到在这种模式下,Edge以单独浏览器的形式进行了启动。但是开发人员所有的调试工作还是在vscode中进行。

4.  Edge和VS Code之间的联动用法

上一个小节我们为大家展示了通过Edge Tools将Edge的调试功能绑定到vscode中。实际上除了将edge绑定到vscode,我们还可以将edge中的文本修改同步到vscode中。本小节我们将为大家介绍这一功能。

  1. VS Code到Edge的文本实时更新

1.1 在运行和调试选项卡中选择headless模式,并点击开始调试按钮。

1.2 选择资源管理器选项卡,并选择index.html文件,将文件中的Hello World修改为Hello World 001,修改完成后点击重启按钮。

可以发现页面已经更新。

  1. Edge在Headless模式下的文本更新。

2.1 接下来我们来学习如何从Edge编辑器直接更新css的属性值,首先我们在内嵌Edge的DevTools中选择元素选项卡,然后选择<body>元素,在下方的样式选项卡可以看到<body>对应的样式选项卡。在样式中,我们可以看到在style.css文件中定义的属性值background-color

 ‘

2.2 我们单击background-color属性值中的颜色块,即可进入颜色编辑器。在颜色编辑器中。我们可以通过拖动的方式修改<body>的背景颜色。

2.3 当颜色修改之后,我们选择sytle.css文件,我们可以看到颜色属性已经自动修改了。我们按Ctrl+S快捷键保存文件即可

 

  1. Edge在独立模式下的文本更新。

3.1 上一小节中我们介绍了Headless模式下的属性文本自动更新。而对于独立应用模式下,实现文本的自动更新需要进行相关的配置,这一小节我们来学习如何进行配置。首先我们在运行和调试选项卡中选择普通模式,并点击开始调试按钮。

3.2 在单独打开的edge浏览器中,选择菜单项设置及其他->更多工具->开发人员工具

3.3 选择源代码选项卡->文件系统选项卡->将文件夹添加到工作区

3.4 选择/home/dev/web目录,单击选择

3.5 在选择目录之后,还需要再浏览器上方对DevTools工具授权,单击允许

3.6 授权之后,即可看到源代码目录被添加到了工作区,这时候我们选择index.html文件,将Hello World修改为Hello World 002,并按下Ctrl + S保存。

 ‘

3.7 切换到vscode编译器,选择index.html文件,会发现文件内容已经和edge中的修改同步。

 

由此可见不论是headless嵌入式edge还是独立运行的edge中,当我们修改样式或者代码时,vscode都会自动加载,但是在vscode中修改样式则需要edge从新加载。

5.  Live Server的安装和使用

上一个小节我们介绍了通过EdgeTools和DevTools实现vscode和edge的联动调试,但是通过这种方法打开的网页,使用的是本地文件协议而不是http协议。这两种协议在开发动态加载网页时的逻辑还是会有很大的差异。本小节我们为大家演示两者的差异,以及如何通过Live  Server插件实现通过web协议调试本地网页。

  1. 本地文件系统开发动态加载网页时的问题。

1.1 我们打开并修改index.html,修改onClick()函数,将功能调整为动态加载sytle.css。文件为如下内容。

<!DOCTYPE html>
<html lang="zh-CN">
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Web dev</title>
<body>
    <div>
        Hello World
    </div>
    <div>
        <button onclick="onClick()">button</button>
    </div>
    <div id="text">
    </div>
    <script type="text/javascript">
        var count = 0
        function onClick() {
            var xhr = new XMLHttpRequest();
            xhr.open("get", "style.css")
            xhr.onreadystatechange = function(){
                if( xhr.readyState == xhr.DONE && xhr.status == 200 ){
                    document.getElementById("text").textContent = (count++ + " " + xhr.responseText);
                }
            }
            xhr.send()
        }
    </script>
</body>
</html>

1.2 在运行和调试选项卡选择Headless模式进行调试。在web页面上点击button按钮。我们会发现由于CORS安全策略,动态加载功能无法实现。因此我们需要新的方法进行本地调试。

  1. Live Server 插件得安装和使用。

2.1 我们进入扩展选项卡,并搜索Live Server ,单击安装

2.2 安装完毕后,我们进入资源管理器选项卡,在index.html上点击右键,选择Open with Live Server菜单。

2.3 我们会发现Edge浏览器以独立运行得方式打开,同时浏览器得URL显示为127.0.0.0.1:5500/index.html  说明此时得网页已经通过Edge默认得http协议进行加载

2.4 接下来我们单击button,我们发现style.css文件得内容已经可以动态得读取和加载,并且显示到网页上。

  1. 编写Live Server 得调试配置文件。

3.1 Live Server不但可以单文件调试,同样可以作为vscode系统调试功能。我们进入资源管理器选项卡,打开launch.json文件。并修改三处"url":所在行为如下内容。

"url": "http://127.0.0.1:5500/index.html",

3.2 修改完毕后,进入运行和调试选项卡,选择Headless方式进行调试,我们发现嵌入式的Edge浏览器中的URL变为http://127.0.0.1:5500/index.html。接下来我们单击页面中的button,发现动态加载功能已经生效。

6.  Live Server的注意事项

在上一个小节中我们我们学习了Live Server的基本用法,本小节中,我们继续介绍Live Server的其他功能和注意事项。

  1. Live Server的服务开关。

1.1 在Live Server插件安装成功后,我们观察右下角的状态条。可以看到 Port:5500,此位置为Live Server 的状态显示区,此信息表示Live Server服务器已经启动,同时运行在5500端口。

1.2 接下来我们点击此区域,会发现状态条变为Go Live,此状态表示Live Server处于关闭状态。

 

1.3 这时我们启动Headless模式调试,会发现由于服务关闭,网页无法显示。如果在实际开发中遇到此情况,需要单击Go Live状态显示区启动Live Server。

  1. Live Server的动态加载功能。

2.1 我们在Headless调试模式下,修改index.html文件中的Hello World字段为Hello World 003并按下Ctrl + S快捷键保存。我们发现网页已经自动更新。

2.2 为了了解自动更新功能的实现原理,我们在Edge DevTools页面中选择元素选项卡。我们发下相比较index.html文件。加载到页面的元素中的<body>元素的最后多了如下内容。

2.3 我们点击其中的<script>元素,发现Live Server自动添加了若干JavaScript脚本。通过这些脚本。当vscode中的文件被修改后,会自动更新到edge浏览器中。

  1. Live Server调试Html的注意事项。

3.1 在上一段中我们了解到Live Server会在<body>元素的最后加入JavaScript。接下来我们尝试在<body>元素的后面加入JavaScript,我们插入如下代码。按下Ctrl + S快捷键保存。

<script type="text/javascript">
    console.log("after body");
</script>

3.2 观察Edge DevTools页面的元素选项卡。会发现LiveServer注入的JavaScript脚本在"atfer body"之前。

3.3 我们再尝试在after body中加入断点,点击index.html文件的34行添加断点。并重新启动调试。观察断点的运行状态。发现断点停在35行,但是调试控制台中并没有输出"after  body",这是因为Live  Server注入的JaveScript改变了Edge中的网页和源代码的对应关系。导致断点位置错误。因此在使用Live  Server的情况下,要注意所有的JaveScript不要写在<body>元素的后面。

 

实验链接:https://developer.aliyun.com/adc/scenario/a4fc6e0c726741e7acb28f5bd3e641e4

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
136 3
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
4月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
200 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
5月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
292 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
4月前
|
人工智能 开发工具 C++
利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例
本文介绍了如何利用阿里云通义灵码AI程序员的Qwen2.5-Max模型,在VS Code中一键生成扫雷小游戏。通过安装通义灵码插件并配置模型,输入指令即可自动生成包含游戏逻辑与UI设计的Python代码。生成的游戏支持难度选择,运行稳定无Bug。实践表明,AI工具显著提升开发效率,但人机协作仍是未来趋势。建议开发者积极拥抱新技术,同时不断提升自身技能以适应行业发展需求。
22311 18
利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例
|
6月前
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
190 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
3月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
249 12
|
4月前
|
人工智能 前端开发 JavaScript
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
AI程序员:通义灵码 2.0应用VScode前端开发深度体验,在软件开发领域,人工智能技术的融入正深刻改变着程序员的工作方式。通义灵码 2.0 作为一款先进的 AI 编程助手,与广受欢迎的代码编辑器 Visual Studio Code(VScode)相结合,为前端开发带来了全新的可能性。本文将详细分享通义灵码 2.0 在 VScode 前端开发环境中的深度使用体验。
517 2
AI程序员:通义灵码 2.0应用VScode前端开发深度体验
|
5月前
|
安全 前端开发 开发工具
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
214 5
【01】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-优雅草卓伊凡拟开发一个一站式家政服务平台-前期筹备-暂定取名斑马家政软件系统-本项目前端开源-服务端采用优雅草蜻蜓Z系统-搭配ruoyi框架admin后台-全过程实战项目分享-从零开发到上线
|
5月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
307 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
5月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
188 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡