热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用HTTPS和clicktoreactcomponent提升React开发体验

大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号回复1,加入高级Node交流群前言前几天了解到一个工具仓库click-to-compone

大厂技术  高级前端  Node进阶

点击上方 程序员成长指北,关注公众号

回复1,加入高级Node交流群

前言

前几天了解到一个工具仓库 click-to-component[1],这个工具的主要作用是:在 React 项目里,我们通过 Option + 鼠标左or右键 点击页面元素可以快速跳转到 IDE 中对应的代码部分,就像下面这样 👇

4a4f7b459da9502c4344e468e687d51c.png

next.gif

简单看了下教程后,立马在项目里安装并尝了鲜,好用确实好用,不过遇到一个比较头疼的问题,就是每次在浏览器里点击的时候都会打开一个新窗口并弹出一个提示框

ad303b5b6eaa8cbf65b28cb3fa7e84fe.png
image.png

说实话,偶尔弹这么几下勉强还能接受,但如果我想重度使用 click-to-component 这个工具,肯定先被这可恶的弹窗给劝退了 😵

好在通过万能的 google 大法,还是找到了完美的解决办法,顺带还收获了如何在本地用 HTTPS 进行开发调试,买一送一,香的一X 🤠

弹窗

首先来解决弹窗的问题,通过关键字搜索了一圈,找到一个有用的解法 👇

bc552593a328eacf2f4e13f2ade4205d.png
image.png

话不多说,直接开整

首先在 shell 里进入到指定目录并创建 com.microsoft.Edge.plist 文件

$ cd ~/Library/Preferences
$ touch com.microsoft.Edge.plist

用任一文本编辑器打开创建好的 com.microsoft.Edge.plist 文件并添加如下内容:





ExternalProtocolDialogShowAlwaysOpenCheckbox


保存退出后重启 MAC

重启后我们再次打开应用和浏览器,输入地址后,Option + 左键点击页面上的元素

Bingo。。等等,为什么没成功 🤨

在浏览器里输入 edge://policy/ 查看,发现更改的内容已经生效

a6abaacb547fe8306ece3ece13d5bee8.png
image.png

又去 google 了一圈,发现[2]这个策略只对 https 生效

好吗,白忙活一圈,那就只能来解决本地开发如何使用 HTTPS 的问题了

让本地开发可以使用 HTTPS

mkcert

mkcert[3] 是一个简易的制作本地信任开发证书的工具,他不需要任何配置。而且它是跨平台的,适合团队共同使用

安装

$ brew install mkcert
$ brew install nss # if you use Firefox (如果你使用 Firefox,需要额外执行这个)

创建本地 CA

$ mkcert -install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊

改造 React 项目

我们以使用 Create React App[4] 创建的项目为例,首先在 package.json 中的启动脚本里添加环境变量打开 HTTPS

{"scripts": {
-   "start": "react-scripts start",
+   "start": "HTTPS=true react-scripts start",...}
}

改完后运行项目 yarn start

此时会看到浏览器弹出提示,但是已经可以通过 HTTPS 来访问,只是由于没有可靠的证书,因此链接被认为是不安全的

d5679d10e9a00c0783ff5dd7421a068d.png
image.png

创建证书

在项目的根目录创建 .cert 文件夹来存放证书

$ mkdir .cert

通过 mkcert 创建证书

$ mkcert -key-file ./.cert/key.pem -cert-file ./.cert/cert.pem localhost 127.0.0.1

调整 package.json 中的启动脚本

{"scripts": {
-   "start": "HTTPS=true react-scripts start",
+   “start”: "HTTPS=true SSL_CRT_FILE=./.cert/cert.pem SSL_KEY_FILE=./.cert/key.pem"...}
}

注意: .cert 文件夹不应该被共享,因此要把这个文件夹添加到 .gitignore 文件里

再次运行项目 yarn start,现在链接已经变为安全的了

7545b350144ba193da8285ded6825fdd.png
image.png
重新体验 click-to-react-component

当我们再次 Option + 左键 点击页面元素时,此时浏览器的弹窗里会多出一个始终允许的选项

ae149f9da4bbef86d7493460605b8764.png
image.png

勾选之后点击 Open, 之后无论我们点击任何元素的时候都不会再弹出这个弹窗,会直接打开 IDE 的对应源码,完美!🤩

后记

无意中发现 com.microsoft.Edge.plist 文件中的内容可以不做更改,因为默认的策略就是开启的,个人测试,当这个值是 false 的时候,即使是 HTTPS 链接,弹窗里也不会出现 始终允许打开 的复选框。尴尬 🤪

另外 Firefox 无论 HTTP 还是 HTTPS 的弹窗里都有 始终允许打开 这个选项,好评 👍

Chrome 和 Safari 的表现和 Edge 一致

(完)

关于本文

来自:RunningCoder

https://juejin.cn/post/7102696038321881125

Node 社群我组建了一个氛围特别好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你对Node.js学习感兴趣的话(后续有计划也可以),我们可以一起进行Node.js相关的交流、学习、共建。下方加 考拉 好友回复「Node」即可。如果你觉得这篇内容对你有帮助,我想请你帮我2个小忙:1. 点个「在看」,让更多人也能看到这篇文章2. 订阅官方博客 www.inode.club 让我们一起成长点赞和在看就是最大的支持


推荐阅读
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
author-avatar
阳吉登
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有