前端工程化初体验

news2024/11/30 7:46:14

最近在尝试着完整地体验一下前端工程化需要的那些流程,于是自己尝试一套属于自己的前端工程化流程。

前端工程化需要做什么:

1、创建项目需要有项目模板资源,所以这里我创建了一个前端脚手架CLI工具,mfex-project,主要规范了4种项目结构的搭建,有了项目模板,这样就方便我们统一管理使用的npm库和项目结构,文件命名规范,资源文件的大小等等。

2、项目结构目录检测,因为使用的脚手架创建了模板,所以有必要规范一下文件目录结构和文件命名规范, 编写了一个自动化检测hfex-check

"scripts": {
    "dev": "npm run check && vite",
    "build": "tsc && vite build",
    "preview": "vite preview",
    "lint-staged": "lint-staged",
    "check":"hfex-check --husky --directory"
  },

在项目dev前会检测一下目录结构适合符合规范,资源文件是否符合大小。

3、代码检测,代码检测可以来说在前端工程化是至关重要的一部分,修复一些可读性差的代码,代码规范检测的工具主要有eslint、stylelint,这里我就使用自己整理的规范,hfex-eslint-config,

**主要是在这里规范上扩展**

对于css、scss的样式编写规范,这里我主要用的是hfex-stylelint-config。

代码缩进格式化,可以使用prettier,可以自定义属于自己项目中的通用的prettier规范,这里我主要用的是,hfex-prettier-config

4、对于代码检测,一般都是在git add .然后执行git commit时进行检测,所以这里需要用到husky和lint-staged,lint-staged主要是将git add的代码存储到一个缓存区,只对git add的文件进行检测,这样我们就不会去检测未修改文件的代码了。然后通过husky 的git hooks钩子pre-commit去执行代码检测,代码检测通过则提交代码。lint-staged片段如下,这里只对src目录进行检测

 "lint-staged": {
    "**/src/**/*.{ts,js,json,jsx,tsx}": [
      "eslint --fix",
      "git add"
    ],
    "**/src/**/*.{html,vue,scss,css,less}": [
      "stylelint --fix",
      "git add"
    ],
    "**/src/**/*.{js,scss,css,less,json,ts}": [
      "prettier --write",
      "git add"
    ]
  }

5、 git commit的提交规范,git commit -m 'xxx',’xxx'为这次提交的内容,所以要规范提交的信息,因为一个可读性的提交信息,可让人清楚的知道这次主要的修改了什么内容,修复了什么bug,更新了什么内容等等 编写了一个自动化检测hfex-check,可以全局安装或者局部安装,配合husky的commit-msg钩子使用

6、CICD构建,开发完代码后,git push上仓库里面,然后触发构建。

构建成功后,PR后,会自动release,打tag ,生成changelog,changelog记录了一下修改记录

如果是开发npm包的项目,则会自动发布到npm.

如果是vue、react项目打包部署到服务器托管的,则会自定发布到托管仓库,这里我使用的github-pages。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Win10系统蓝屏如何使用U盘重装系统?

Win10系统蓝屏如何使用U盘重装系统?很多用户遇到了电脑系统蓝屏问题之后,都不知道怎么去进行系统重装的方法。其实系统重装没有大家想象的那么困难,以下为大家带来详细的图文教程分享。 准备工作: 1、U盘一个(尽量使用…

2023年5月CSDN客服月报|解决5个重大问题和18个次要问题,采纳1个用户建议,处理2个用户需求

听用户心声,解用户之需。hello,大家好,这里是《CSDN客诉报告》第20期,接下来就请大家一同回顾我们5月份解决的bug~ 一、重大问题 1、【商城】已支付订单权益未正常下发 反馈量:23 2、【UC】收藏/评论/账…

2023年湖北高考作文AI写

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 2023年湖北高考作文AI写 🧊摘要🧊原题🧊解析🧊AIGCInsCode AI 创作助手文心一言讯飞星火 SparkDeskChatGPT3.5 🧊摘要 本文…

CANoe学习笔记一

目录 摘要 1、CANoe工程的新建 2、通过Trace工具查看交互的报文内容 3、通过Logging保存日志文件 4、创建IG发送报文 5、通过Graphics界面抓取信号波形 6、加载cdd文件 7、过滤报文ID的接收 8、其他 摘要 CANoe是德国Vector公司为汽车总线的开发而设计的一款总线开发环…

nuxt3.0学习-四、nuxt3.0的middleware(中间键)、composables(可组合物)以及Plugins(插件目录)

Nuxt3.0中间键了解地址 Nuxt提供了一个可定制的路由中间件框架,您可以在整个应用程序中使用它,非常适合在导航到特定路由之前提取要运行的代码; 路由中间件有三种: 匿名(或内联)路由中间件,直…

最佳 AI 生产力工具:更聪明地工作,而不是更努力地工作

在20世纪50年代,AI 在内存耗尽之前几乎无法完成跳棋游戏。 快进七个激动人心的十年,可以理解自然语言的人工智能系统——大型语言模型 (LLM)——正在成为我们数字工具箱中的重要工具。 在今天的文章中,我们梳理了一些提高生产力的最佳人工智…

【SpringBoot】 设置随机数据 用于测试用例

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 设置随机数据——常用于测试用例 SpringBoot设…

Research Day 2023:Succinct ZKP最新进展

1. 引言 主要见Ying Tong在Research Day 2023上视频分享: Advances in the Efficiency of Succinct Proofs - Ying Tong ZKP技术可用于: 1)Verifiable virtual machine:如各种zkEVM和zkVM。2)verifiable cloud com…

领跑云原生安全赛道!安全狗云甲获信通院多项荣誉认可

6月6日,ICT 中国2023高层论坛-云原生产业发展论坛在北京成功举办。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 据悉,此次论坛主要包含论坛开幕式、成果发布、产业发展等三大部分。云原生领域领军智库、院士专家、企业高层等多位…

企业培训直播场景下嘉宾连线到底是如何实现的?

企业培训直播场景下,进行音视频连线的嘉宾,都拥有面向学员教学的权限,支持多位老师/专家异地同堂授课,那么,这种嘉宾连线到底是如何实现的? 企业培训,如何做到不受时间和地点限制,实…

数据单一触发数据库锁

【引言】 作为一名数据库开发人员或者管理员,那么你一定知道数据库锁在维护数据一致性中的作用。但是,你有没有想过,什么情况下会触发数据库锁呢? 本文将讲述一种常见的情况——数据单一触发数据库锁,并且分享如何避…

KDZD绝缘油介质损耗电阻率测试仪特点

一、概述 测试仪依据GB/T5654-2007《液体绝缘材料相对电容率、介质损耗因数和直流电阻率的测量》设计制造。用于绝缘油等液体绝缘介质的介质损耗因数和直流电阻率的测量。 一体化结构。内部集成了介损油杯、温控仪、温度传感器、介损测试电桥、交流试验电源、标准电容器、高阻计…

我用ChatGPT写2023高考语文作文(一):全国甲卷

2023高考全国甲卷语文作文题目: 人们因技术发展得以更好地掌控时间,但也有人因此成了时间的仆人。 这句话引发了你怎样的联想与思考?请写一篇文章。 要求:选准角度,确定立意,明确文体,自拟标题&…

Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

1,创建数据库: sqlite test.db 我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名, 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE ids_logs ( english_details TEXT, chines…

LeetCode_数据结构设计_中等_173.二叉搜索树迭代器

目录 1.题目2.思路3.代码实现(Java) 1.题目 实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root):初始化 BSTIterator 类的一个…

便捷工具箱(更新中)

遇到问题怎么办?不慌,我可以帮你解决 1.浏览器视频播放速度一般只有0.5x,1.0x,1.5x,2.0x四种选项,对于我们来说是不够用的,那该怎么办呢?别慌,有代码。 解决办法&#x…

Python3+Selenium2完整的自动化测试实现之旅(一):自动化测试环境搭建

引言 大多数人可能认为自动化测试很难,但是在我的实践中,我发现只要有正确的工具和环境,自动化测试其实并不困难。 本文将带领大家了解如何使用Python3和Selenium2搭建自动化测试环境,让你在未来的测试工作中事半功倍。作为一名…

安卓逆向 -- SO文件逆向分析

接上节课内容 安卓逆向 -- Frida环境搭建(HOOK实例) 安卓逆向 -- FridaHook某车udid的加密值 安卓逆向 -- FridaHook分析3DES加密值 一、上节课我们找到了get3deskey函数来自原生函数 二、解压apk文件,去lib文件里找到libnative-lib.so文件 三、将so文件拖入ida…

企业通常会采用什么方式与媒体建立关系?

传媒如春雨,润物细无声,大家好,我是51媒体网 胡老师。 媒体机构包括电视台、广播电台、报纸、杂志、网络媒体,视频媒体等。企业与媒体建立联系,可以提升品牌曝光度、塑造公众形象、传递企业信息、增加市场认知和促进业…

阿里云丁宇:云上开发成为主流,Serverless 定义新范式

今天,阿里云峰会粤港澳大湾区在广州开幕,阿里巴巴研究员、阿里云智能云原生应用平台总经理丁宇在论坛发言,他表示: Serverless 引领云上开发新范式,通过丰富的原子化服务,全托管、高弹性、免运维的优势&am…