前端工程化,前端监控,工作流,部署,性能

开发规范

创建项目的时候,配置下 ESlintstylelint, prettier, commitlint 等;

ESLint

主要功能
ESLint 是一个静态代码检查工具,用于在 JavaScript 代码中识别和报告模式。它的目标是提供一个插件化的 JavaScript 代码质量工具。

应用场景
在前端开发过程中,ESLint 能够帮助开发者发现代码中的错误、不符合规范的地方,从而提高代码质量。

配置方法

  1. 全局安装 ESLint:在命令行中执行 npm install -g eslint
  2. 初始化 ESLint 配置:在项目根目录下执行 eslint --init,然后根据提示选择需要的配置。
  3. 配置文件:在项目的根目录下创建一个 .eslintrc 文件(可以是 JSON、YAML 或 JS 格式),并在其中指定规则、插件、解析器等。例如,指定使用 Babel 解析器:{ "parser": "babel-eslint" }

常见问题解决方法

  • 如果遇到 ESLint 报错,首先检查是否安装了正确的依赖,并查看报错信息以确定具体问题。
  • 可以根据报错信息修改代码或配置 ESLint 规则来解决问题。

Stylelint

主要功能
Stylelint 是一个强大的、现代化的 CSS/SCSS/Less 检查工具,可以帮助开发者遵循一致的代码风格和最佳实践。

应用场景
在前端开发过程中,Stylelint 能够确保 CSS 代码的风格一致性和可读性。

配置方法

  1. 安装 Stylelint:在项目中执行 npm install --save-dev stylelint
  2. 配置文件:在项目的根目录下创建一个 .stylelintrc 文件(可以是 JSON 或 YAML 格式),并在其中指定规则、插件等。例如,指定一个规则禁止在数字前加零:"number-leading-zero": "never"

常见问题解决方法

  • 如果遇到 Stylelint 报错,首先检查是否安装了正确的依赖,并查看报错信息以确定具体问题。
  • 可以根据报错信息修改 CSS 代码或配置 Stylelint 规则来解决问题。

Prettier

主要功能
Prettier 是一个代码格式化工具,支持多种语言,包括 JavaScript、CSS、HTML 等。它可以帮助开发者自动调整代码格式,使其符合一致的样式。

应用场景
在前端开发过程中,Prettier 可以自动格式化代码,节省开发者手动调整代码格式的时间。

配置方法

  1. 安装 Prettier:在项目中执行 npm install --save-dev --save-exact prettier
  2. 配置文件:在项目的根目录下创建一个 .prettierrc 文件(可以是 JSON、YAML 或 JS 格式),并在其中指定格式化规则。Prettier 的配置相对简单,主要指定一些基本的格式化选项,如缩进大小、换行符等。
  3. 集成到编辑器:将 Prettier 集成到编辑器中(如 VS Code),以便在保存文件时自动格式化代码。

常见问题解决方法

  • 如果 Prettier 没有按预期格式化代码,首先检查是否安装了正确的依赖,并查看 Prettier 的配置文件以确定配置是否正确。
  • 可以尝试在编辑器中手动触发格式化操作来查看效果。

Commitlint

主要功能
Commitlint 是一个帮助你编写更规范 git commit message 的工具。它基于一组可配置的规则来检查 commit message 的格式和内容。

应用场景
在团队协作中,Commitlint 可以确保每个开发者都遵循一致的 commit message 规范,从而提高代码的可读性和可维护性。

配置方法

  1. 安装 Commitlint:在项目中执行 npm install --save-dev @commitlint/{cli,config-conventional}
  2. 配置文件:在项目的根目录下创建一个 commitlint.config.js 文件,并在其中指定要使用的规则集。例如,使用常规提交规范:module.exports = { extends: ['@commitlint/config-conventional'] }
  3. 集成到 Git 钩子:将 Commitlint 集成到 Git 钩子中,以便在每次提交时自动检查 commit message。可以使用 Husky 等工具来实现这一功能。

常见问题解决方法

  • 如果 Commitlint 报错,首先检查是否安装了正确的依赖,并查看报错信息以确定具体问题。报错信息通常会指出 commit message 不符合哪个规则。
  • 可以根据报错信息修改 commit message 或配置 Commitlint 规则来解决问题。

前端监控

前端监控,简单来说就是我们在前端程序中记录一些信息并上报,一般是错误信息,来方便我们及时发现问题并解决问题。除此之外也会有性能监控用户行为的监控(埋点)等。

对于错误监控:  可以了解一下 Sentry,原理简单来说就是通过 window.onerrorwindow.addEventListener('unhandledrejection', ...) 去分别捕获同步和异步错误,然后通过错误信息和 sourceMap 来定位到源码。

对于性能监控:  可以通过 window.performancePerformanceObserver 等 API 收集页面性能相关的指标,除此之外,还需要关注接口的响应时间。

收集到信息之后,还要考虑数据上报的方案:  比如使用 navigator.sendBeacon 还是 Fetch、AJAX?是批量上报,实时上报,还是延迟上报?上报的数据格式等等。

CI/CD

一、定义

   持续集成(Continuous Integration, CI)和 持续部署(Continuous Deployment, CD),主要包括版本控制,代码合并,构建,单测,部署等一系列前端工作流。

  1. CI(Continuous Integration,持续集成):是一种软件开发实践,它要求开发人员频繁地将代码集成到共享的主干上。每次集成后,都会通过自动化的构建和测试来验证新代码的正确性。这有助于尽早发现错误,减少后期修复的成本。
  2. CD(Continuous Delivery/Continuous Deployment,持续交付/持续部署):是CI的后续步骤。持续交付指的是频繁地将软件的新版本交付给质量团队或用户以供评审,而持续部署则是指在评审通过后自动将代码部署到生产环境。

二、功能

  1. 提高开发效率:通过自动化的构建、测试和部署,CI/CD可以大大缩短开发周期,提高开发效率。
  2. 保证代码质量:每次代码集成后都会进行自动化测试,确保新代码的正确性,从而减少潜在的错误和缺陷。
  3. 快速响应市场变化:由于CI/CD可以加快软件的发布频率,因此可以更快地响应市场变化和用户需求。
  4. 降低风险:通过频繁的集成和测试,可以尽早发现问题并进行修复,从而降低单次发布的风险。

三、应用场景

  1. 大型企业:在大型企业中,由于团队规模较大,代码库复杂,因此需要使用CI/CD来确保代码的正确性和可维护性。
  2. 创业公司:对于创业公司来说,快速迭代和响应市场变化至关重要。CI/CD可以帮助他们加快开发速度,并确保软件质量。
  3. 跨团队协作:当多个团队共同参与一个项目时,CI/CD可以确保不同团队之间的代码能够顺利集成,并避免潜在的冲突和错误。

         场景的工作流有 Jenkins、 Gitlab CI 等。我们可以配置在合并代码时自动打包部署,在提交代码时自动构建并发布包等。 

        这里可以了解下,比如在 Gitlab CI 中, Pipeline 、 Stage 和 Job 分别是什么,怎么配置,如何在不同环境配置不同工作流等。

四、作用

  1. 实现快速反馈:CI/CD可以在代码提交后立即进行构建和测试,从而快速发现错误并提供反馈。
  2. 自动化流程:通过自动化构建、测试和部署流程,可以减少人工干预和手动操作,降低出错的可能性。
  3. 提高团队协作效率:CI/CD可以确保不同团队之间的代码能够顺利集成,从而提高团队协作效率。
  4. 快速响应市场变化:CI/CD可以加快软件的发布频率,使团队能够更快地响应市场变化和用户需求。

总之,前端CI/CD是一种重要的软件开发实践,它可以通过自动化的构建、测试和部署流程来提高开发效率、保证代码质量、快速响应市场变化和降低风险。在大型企业、创业公司和跨团队协作等场景中都有广泛的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691789.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PopClip for Mac 激活版:让文本处理更高效

还在为繁琐的文本处理而烦恼吗?PopClip for Mac来帮您解决!这款神器般的文本处理工具,能让您轻松应对各种文本处理任务。无论是写作、编程还是日常办公,PopClip for Mac都能助您一臂之力,让您的文本处理更高效、更便捷…

数据分析思维——数据埋点笔记,以电商为例

数据埋点 数据分析前提是有数据,数据从哪里来,要选择采集哪些数据都需要考虑。如某些app上的商品推荐,是基于哪些信息来预判的呢?因此作为数据分析师有必要系统的了解用户行为到用户数据的整个过程 何为数据埋点 每当用户在客户端…

Git系列:git diff使用技巧

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【基于element ui的color选择器】基于element ui的color选择器

技术版本如下&#xff1a; vue 2.6.14 less 3.13.1 element-ui 2.15.6 less-loader 5.0.0需求&#xff1a; 支持RGB、HEX编码、支持吸管吸取颜色、颜色选择器、颜色模板、透明度、色板、线性渐变颜色 效果图&#xff1a; 1.引入选择器的color-all文件 <template><…

Ps 滤镜:便条纸

Ps菜单&#xff1a;滤镜/滤镜库/素描/便条纸 Filter Gallery/Sketch/Note Paper 便条纸 Note Paper滤镜用于模拟手工纸张的质感和视觉效果。此滤镜将图像简化并添加浮雕和颗粒效果&#xff0c;使图像看起来像是在手工制作的纸上绘制或打印。 “便条纸”滤镜通过结合使用浮雕效果…

ZFS 文件系统结构及 ZFS 文件系统数据恢复

ZFS是一种革命性的文件系统&#xff0c;它遵循完全不同的文件系统管理方法&#xff0c;同时提供目前其他文件系统无法提供的新功能和优势。ZFS 可靠、可扩展且易于管理。 它放弃了卷的概念&#xff0c;从而摆脱了传统的文件系统原则。另外&#xff0c;ZFS 提供更复杂的存储池&…

2024车载测试还有发展吗?

2024年已过接近1/4了,你是不是还在围观车载测试行业的发展? 现在入车载测试还来得及吗? 如何高效学习车载测试呢? 首先我们看一下车载测试行情发展,通过某大平台,我们后去数据如下: 这样的数据可以预估一下未来车载测试还是会持续发展. 随着科技的发展和汽车行业的不断创新,…

LLama3大模型本地部署 仅需6步完成对话模型本地安装部署。附赠ui配置、第三方微调模型、中文模型下载地址

本篇分为三部分 一&#xff1a;6步完成llama3大模型本地部署 二&#xff1a;8步完成llama3可视化对话界面安装 三&#xff1a;微调模型、中文模型下载资源分享 一、LLama3 大模型本地部署安装 首先去mata官网下载ollama客户端 Ollama 选择合适的操作系统平台后点击dowload按钮…

【Java难点】多线程-高级

悲观锁和乐观锁 悲观锁 synchronized关键字和Lock的实现类都是悲观锁。 它很悲观&#xff0c;认为自己在使用数据的时候一定有别的线程来修改数据&#xff0c;因此在获取数据的时候会一不做二不休的先加锁&#xff0c;确保数据不会被别的线程修改。 适合写操作多的场景&…

博通Broadcom (VMware VCP)注册约考下载证书操作手册

博通Broadcom(VMware) CertMetrics 注册约考下载证书等操作指导手册&#xff08;发布日期&#xff1a;2024-5-11&#xff09; 目录 一、原 Mylearn 账号在新平台的激活… 1 二、在新平台查看并下载证书… 5 三、在新平台注册博通账号… 6 四、在新平台下注册考试… 10 一、原…

Star15.3k,开源数据可视化分析工具项目

好东西来了&#xff0c;这是一个人人可用的开源数据可视化分析工具项目&#xff0c;V 哥迫不及待的要给大家推荐这个项目&#xff0c;帆软、Tableau 等商业 BI 工具的开源替代&#xff0c;已在 Github 上被 Star了15.3k了&#xff0c;大家一起来了解一下。自己搭建起来可用&…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…