vite vue3 规范化与Git Hooks详解

以下是“vite vue3 规范化与Git Hooks详解”的详细攻略。

概述

在前端开发中,如何进行规范化开发是一个十分重要的话题。同时,在团队协作中,代码的版本控制也是必不可少的一环。本文将介绍如何使用Vite和Vue3来实现前端规范化开发,并结合Git Hooks来实现代码的自动检测和提交。

Vite+Vue3规范化开发

创建项目

首先需要使用Vue CLI来创建一个Vue3项目,命令如下:

vue create my-vue-project

选择默认选项即可。创建完成后进入项目目录,并安装Vite:

cd my-vue-project
npm install vite --save-dev

新建页面

在src目录下新建一个views目录,用来存放页面组件。在views目录下新建一个页面组件文件,命名为page1.vue,内容如下:

<template>
  <div class="page1">
    <h1>Page 1</h1>
    <p>{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Welcome to Page 1!'
    }
  }
}
</script>

<style>
.page1 {
  background-color: #f7f7f7;
  padding: 20px;
}
</style>

新建路由

在src目录下新建一个router目录,用来存放路由文件。在router目录下新建一个文件,命名为index.js,内容如下:

import { createRouter, createWebHistory } from 'vue-router'
import Page1 from '@/views/page1.vue'

const routes = [
  {
    path: '/',
    name: 'Page1',
    component: Page1
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

配置Vite

在项目根目录新建一个vite.config.js文件,配置Vite如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    port: 3000
  }
})

启动项目

在package.json中添加以下scripts:

"scripts": {
  "dev": "vite"
}

执行以下命令启动项目:

npm run dev

在浏览器中访问http://localhost:3000/即可看到页面1。

规范化开发

规范化开发可以包括以下内容:

  • 代码风格约定:比如缩进、命名、注释等
  • 代码结构约定:比如文件命名、目录结构等
  • 组件化开发:将页面拆分成多个组件,提高代码复用性和可维护性
  • 公共代码提取:将组件中公共的代码提取出来,形成单独的类库或组件,方便多个项目复用

详细的规范化开发内容超出本文范围,感兴趣的读者可以自行查阅相关资料。

Git Hooks自动检测和提交

安装husky和lint-staged

Husky是一个git hooks管理工具,可以用来自动运行代码检查、测试、提交等命令。lint-staged是一个可以在Git暂存区中处理指定文件的工具。

执行以下命令安装husky和lint-staged:

npm install husky lint-staged --save-dev

配置husky和lint-staged

在package.json中添加以下配置:

"husky": {
  "hooks": {
    "pre-commit": "lint-staged"
  }
},
"lint-staged": {
  "*.{js,vue}": ["npm run lint", "git add"]
}

上述配置的含义是,在每次commit前,自动运行npm run lint命令对.js和.vue文件进行检查,如果检查通过,自动将暂存区中的文件提交到仓库。

检查规范

在上述配置中,npm run lint命令是用来检查规范的。可以使用eslint、stylelint、prettier等工具来检查规范。

示例1

下面的示例中,我们可以使用eslint来检查.js和.vue文件的规范。

安装eslint

执行以下命令安装eslint:

npm install eslint --save-dev

初始化eslint配置

执行以下命令初始化eslint配置:

npx eslint --init

按照提示进行配置即可。如果不需要对特定类型的文件进行检查,可以在.eslintrc.js的配置中进行统一排除。

配置npm script

在package.json的scripts中添加以下命令:

"scripts": {
  "lint": "eslint . --ext .js,.vue"
},

执行以下命令运行检查:

npm run lint

示例2

下面的示例中,我们可以使用stylelint来检查.vue文件中的样式规范。

安装stylelint

执行以下命令安装stylelint:

npm install stylelint stylelint-config-standard --save-dev

初始化stylelint配置

在根目录下新建.stylelintrc.json文件,并添加以下配置:

{
  "extends": "stylelint-config-standard"
}

配置npm script

在package.json的scripts中添加以下命令:

"scripts": {
  "lint": "eslint . --ext .js,.vue && stylelint \"src/**/*.vue\""
},

执行以下命令运行检查:

npm run lint

示例3

下面来演示一个自动生成changelog并提交的功能。在Git commit时,可以根据提交信息自动生成Changelog文件,以及自动将Changelog提交到仓库。

安装conventional-changelog-cli

执行以下命令安装conventional-changelog-cli:

npm install conventional-changelog-cli --save-dev

配置npm script

在package.json的scripts中添加以下命令:

"scripts": {
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"
},

配置husky和lint-staged

在package.json中添加以下配置:

"husky": {
  "hooks": {
    "pre-commit": "npm run changelog && git add CHANGELOG.md && lint-staged"
  }
},
"lint-staged": {
  "*.{js,vue}": ["npm run lint", "git add"]
}

每次commit前,除了运行npm run lint检查代码规范外,还会自动生成Changelog文件,并将其加入暂存区。

以上就是Vite、Vue3及Git Hooks的详细攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vite vue3 规范化与Git Hooks详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • js中getter和setter用法实例分析

    当我们需要在 JavaScript 中对一个对象的某个属性进行访问控制时,可以使用 getter 和 setter 方法。getter 方法用于获取属性的值,setter 方法用于设置属性的值。本文将详细介绍如何使用 getter 和 setter 方法。 语法 var obj = { get 属性名() { // 代码块 }, set 属性名(value)…

    Vue 2023年5月28日
    00
  • vue3+ts中ref与reactive指定类型实现示例

    下面我将为你详细讲解“vue3+ts中ref与reactive指定类型实现示例”的完整攻略。 一、Ref 1.1 简介 在 Vue 3 中,ref 是一个函数,它可以创建一个响应式数据,ref 函数返回一个对象,对象中包含着响应式数据的值。 1.2 使用 使用 ref 创建响应式数据的格式如下: import { ref } from ‘vue’; cons…

    Vue 2023年5月27日
    00
  • uniapp中微信小程序与H5相互跳转以及传参详解(webview)

    uniapp中微信小程序与H5相互跳转以及传参详解(webview) 简介 在移动端开发中,有时需要在微信小程序和H5页面之间相互跳转,比如在小程序中点击某个按钮跳转到H5页面,或者在H5页面中点击某个链接跳转到小程序,这就需要涉及到两个不同的平台之间的交互。本文主要介绍在uniapp开发中,使用webview实现微信小程序与H5页面之间的相互跳转和传参的详…

    Vue 2023年5月28日
    00
  • vue $set 实现给数组集合对象赋值

    当使用 Vue.js 开发中,如果想要给数组或对象添加新属性并确保这些属性是可响应的,可以使用 Vue 的 $set 方法来实现。 Vue.$set() 方法接受三个参数:对象,键,值。它所做的主要工作就是创建新属性,并将其设置为可响应的。 下面是使用Vue.$set()方法来给数组添加新元素的示例: <template> <div>…

    Vue 2023年5月28日
    00
  • vue 中filter的多种用法

    下面是一份关于 Vue 中 filter 的多种用法的攻略。 简介 在 Vue 中,filter 是一种非常实用的功能,它可以让我们在模板中格式化数据。例如,在展示日期时,可以使用 Date Filter 将日期格式化为固定的格式,或者在展示价格时,可以使用 Currency Filter 将价格格式化为指定的货币单位。 Vue 中 Filter 的基本用法…

    Vue 2023年5月27日
    00
  • vue-json-editor json编辑器的使用

    Vue-Json-Editor JSON编辑器的使用 VUE-JSON-EDITOR是基于Vue.js构建的JSON编辑器,支持将JSON数据通过文本框或拖放到编辑器中进行编辑,同时还提供了格式化JSON数据的功能。该编辑器支持各种类型的JSON数据(对象、数组、字符串、数字、布尔等),并且有多种主题可供选择,使用非常方便。 安装 你可以使用npm或yarn…

    Vue 2023年5月28日
    00
  • Vue监听数组变化源码解析

    Vue 监听数组变化是通过 Object.defineProperty() API 实现的,具体实现代码在 Vue 的源码中可以在 core/observer/array.js 文件中找到。 具体来说,当我们使用 Vue 的时候,如果我们使用了数组的方法,比如 push()、splice() 等,在内部会调用 _ob__.observeArray(array…

    Vue 2023年5月29日
    00
  • JS 图片压缩原理与实现方法详解

    JS 图片压缩原理与实现方法详解 原理介绍 图片压缩是指在保证图片质量的前提下,通过降低图片的分辨率、压缩比率等方式来减小图片的体积,从而达到优化页面加载速度的目的。在网页中,对于图片的大小不同,会直接影响页面的加载速度,特别是对于移动端的用户体验更加重要。 在实现 JavaScript 图片压缩的时候,常见的有两种方式: HTML5 的 Canvas + …

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部