前端项目工程化流程(简陋版)

news2025/2/25 8:44:52

背景

最近想要自己做开始一个项目,然后发现好像挺久没有出 从 0 开始 一个项目了,对项目的一些工程化方面的流程有点生疏了,感觉就是知道一个大概的流程,很多都要靠搜索引擎来帮忙,我就想整理一下,对于前端项目从零开始的一个工程化的流程。

1. 初始化项目

yarn init -y

或者

npm init -y

这个没啥好说的,初始化 yarnnpm 包,如果是 monorepo 也可以使用 pnpmpnpm 会比 yarnnpm 快一些,包管理也不一样,我也正在学习,后面再做学习记录分享。

2. Eslint 和 Prettier

  1. 安装和初始化

    yarn add eslint -D
    
    npx eslint --init
    

    在这里插入图片描述
    我们一般使用 eslint + prettier,把代码检查的任务交给 prettier,所以我们选择
    To check syntax and find problems
    这个选项就可以啦
    在这里插入图片描述
    然后一步一步的按照自己的项目需要往下选择就好啦,选择什么框架呀,需不需要 typescript 什么的

  2. 创建 .eslintrc.json

    {
      "env": {
        "browser": true,
        "es2021": true
      },
      "extends": [
        "eslint:recommended",
        "plugin:@typescript-eslint/recommended",
        "prettier",
        "plugin:prettier/recommended"
      ],
      "overrides": [],
      "parser": "@typescript-eslint/parser",
      "parserOptions": {
        "ecmaVersion": "latest",
        "sourceType": "module"
      },
      "plugins": ["@typescript-eslint", "prettier"],
      "rules": {
        "prettier/prettier": "error",
        "no-case-declarations": "off",
        "no-constant-condition": "off",
        "@typescript-eslint/ban-ts-comment": "off"
      }
    }
    

    rules 可以根据个人喜好或者团队风格来确定,也可以后期遇到的时候再添加,开始的时候不需要考虑那么多规则

  3. 解决 eslintprettierrc 冲突问题

    yarn add eslint-config-prettier eslint-plugin-prettier -D
    

    或者

    npm install eslint-config-prettier eslint-plugin-prettier -D
    

    在上面的 .eslintrc.json 已经把 prettier 的配置加上去了,所以安装完了就可以用啦,记得在编辑器中设置格式化工具,用 prettier 格式化,在 VSCode 中安装相应的插件就好了。

  4. 添加 lint script
    package.json 中添加一个格式化脚本,目的就是在提交代码(commit)之前对代码做格式化处理。

     "scripts": {
        "lint": "eslint --ext .js,.ts,.jsx,.tsx --fix --quiet ./packages"
      }
    

3. git lint

  1. 安装 husky
yarn add husky -D

或者

npm install husky -D
  1. 添加 pre-commit 钩子
 npx husky install 
 npx husky add ./husky/pre-commit "yarn lint" 

或者

 npx husky install 
 npx husky add ./husky/pre-commit "npm run lint" 
  1. commit lint
npm install commitlint @commitlint/cli @commitlint/config-conventional -D

或者

npm install commitlint @commitlint/cli @commitlint/config-conventional -D
  1. 创建 .commitlintrc.js
module.exports = {
  extends: ['@commitlint/config-conventional']
}
yarn husky add .husky/commit-msg "npx --no-install commitlint -e $HUSKY_GIT_PARAMS"

或者

npm run  husky add .husky/commit-msg "npx --no-install commitlint -e $HUSKY_GIT_PARAMS"

总结

我们就规范了代码风格和 git commit 风格,像我们传统的 react 或者 vue 项目,不管是用脚手架创建的项目还是自己从 0 搭建的都是可以用这个流程去配置的。其实还有一个是项目的打包工具的选择和配置。对于怎么选择打包工具,这里有一个权威的网站,里面有介绍主流打包工具的优劣,可以帮助我们做选择。

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

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

相关文章

在node.js中使用​ JsonWebToken模块进行token加密

目录 一、token 1、什么是token 2、作用 二、Express中实现token的方法: 1、使用JWT模块:JsonWebToken 2、token验证的流程 3、Express中实现过程 ​ (1)安装、导入JsonWebToken模块 ​ (2)在登录…

stm32f767之PWM

仅作笔记,很多内容参考网友文章。 PWM 输出,是利用定时器的比较输出功能,所以就是配置定时器。 1,选择定时器8 tim1和tim8为高级定时器 一般我们选择内部时钟,也就是由APB 外设时钟提供。根据选择的输出IO口&#x…

手把手教你搭建视频去重系统

#01 背景 如今,短视频平台对各类搬运视频的检测力度和精确度越来越高了。无论是影视号的剪辑,还是从油管搬运,即使做了各类复杂的视频变换,都很容易被检测出来。作者都会收到提醒,严重的甚至被封号。 乔布斯演讲原始视…

您公司的财务流程是世界一流的还是二流的?

您公司的财务流程是世界一流的还是二流的? 组织开始意识到,提高财务和会计流程的有效性和效率不仅是财务部门内部的目标,而且对整个公司的战略目标也意义重大。首席财务官必须扪心自问——我们的财务流程是世界一流的还是二流的,…

Mac安装NDK android-ndk-r25b-darwin.dmg

文章目录废话连片教程片段1. 打开要存放的目录.2. 打开 .app 的包内容配置环境变量 MAC (在终端/cmd/命令行中运行)废话连片 最近在用 xx存图 下载 小蓝鸟、油管 视频, 一开始觉得挺好用的, 直到… 免费下载次数已用完. 就想着自己弄一个下载视频的小工具, 便查询到了 python …

基于JavaWeb的宿舍管理系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

网页设计期末课程大作业:基于HTML+CSS+JavaScript+Bootstrap制作响应式网站信息技术交流博客(7页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

gradle的访问目录和支付宝的注意事项

经过我100多次的测试发现。gradle项目不管是打包 还是不打包。他的访问目录都是 config.class.getResourceAsStream("config.properties") 当前class所在的目录, 而支付宝的sdk。他的访问文件的目录是项目的根目录。 比如 你的项目文件是这个样子。运…

QT-自定义本地翻译模块,简单实用

QT-自定义本地翻译模块,简单实用前言一、演示效果二、核心模块1.本地xml的操作过程2、翻译模块三、程序链接前言 QT的国际语言每次如果有字符串变动,都需要重新再编译一下,真的是顶不住,说实话,用起来真的是不习惯。 …

DataX-Web 源码调试及打包

文章目录1、还原 dataxweb 数据库2、修改配置文件3、打包前文回顾: 《DataX 及 DataX-Web 安装使用详解》 《DataX 源码调试及打包》 源码地址:https://github.com/WeiYe-Jing/datax-web 1、还原 dataxweb 数据库 sql 脚本在目录 /bin/db/datax-web.sq…

Keycloak之17.0.1 版本与Jenkins安装与集成-yellowcong

jekins和keycloak的认证,是依赖于 Keycloak Authentication Plugin 插件,进行认证处理,这个配置还是相对比较简单的,最坑的一点就是如果配置错误了,如何恢复的问题。 keycloak 应用集成 Keycloak之安装与启动-yellowcong Keycloak之功能介绍与简单使用-yellowcong Keyc…

BW取月底月初日期函数

BW取月底内置的函数与SAP有差异,为 SN_LAST_DAY_OF_MONTH,如下 很简单的逻辑,主要通过2月的日期进行判断为平年还是闰年,其他月末日期固定 取月底函数: call function SN_LAST_DAY_OF_MONTH EXPORTING DAY_IN …

如何下载不同格式的卫星地图

如何下载不同格式的卫星地图 发布时间:2018-01-17 版权: 务名称:下载任务的名称,可重命名 经纬度范围当前下载区域所在的经纬度范围,不可更改 保存路径:下载你选择区域的文件保存的地方,可更…

基于jsp+mysql+ssm在线培训教育平台-计算机毕业设计

项目介绍 本在线培训教育课程平台系统主要包括系统用户管理模块、课程类别管理模块、课程信息管理、站内新闻管理、登录模块、和退出模块等多个模块。它帮助在线教育平台实现了信息化、网络化,通过测试,实现了系统设计目标,系统采用了jsp的mvc框架,SSM(…

Allegro如何检查过孔类型是否使用正确操作指导

Allegro如何检查过孔类型是否使用正确操作指导 Allegro可以检查PCB上过孔类型是否使用正确,让使用错误的过孔以DRC的形式报出来,具体操作如下 选择setup-Constraint-modes 出现Analysis mode的窗口,选择Physical Modes,Vialist DRC选择on开关,并且保证On-line DRC是勾选…

【数据结构】堆的实现(向上、下调整比较,复杂度,堆排序,Top-K问题)

文章目录一、堆的实现1、堆的概念2、堆的性质3、堆的实现堆的创建(向上、下调整比较)堆排序Top-K(读取文件当中的数据)一、堆的实现 1、堆的概念 如果有一个关键码的集合K {k0,k1, k2,…&…

餐饮行业的成本率与毛利率

1、成本率与毛利率 成本率是指成本量与营业额(销售额)之间的比率,表示实现一定量的销售额需要多少比例的成本资源消耗。 成本率越低,表示企业实现单位业绩付出的资源代价越小,释放出的收益空间越大;相反&a…

docker安装nginx以及(nginxWebUI和nginx-gui图形化界面的使用)

一、docker安装nginx 1、拉取镜像 docker pull nginx2、创建挂载目录 mkdir -vp /usr/local/docker/nginx cd /usr/local/docker/nginx #创建用户挂在的目录 mkdir -vp logs html conf3、启动镜像 1、方式一(推荐) 1、启动 docker run -d --name nginx -p 80:80 nginx2、…

vue实现企业微信扫码登录后台管理系统

大致流程 在登录页面构建内嵌式登录二维码(这种方式好处:无需跳转到企业微信域下登录后再返回,提升企业微信登录的流畅性与成功率)扫二维码之后,微信那边会跳转到redirect_uri你重定向的地址,后面会拼接co…

医疗器械网络安全漏洞自评报告模板

提示:编制医疗器械网络安全漏洞自评报告要点解析 文章目录1. 目的2. 引用文件3. CVSS漏洞等级3.1 概述3.1.1 适用范围说明3.1.2 CNNVD-ID定义3.1.3 编码原则3.1.4 CNNVD-ID语法介绍3.2 指标分析3.2.1 基本指标3.2.1.1可用性指标1)攻击向量2)攻击复杂性3)所需权限4)用…