创建项目1

npm init vue@latest

配置代码质量检测工具

安装Commitizen2

pip3 install -U Commitizen

安装eslint

pnpm install lint-staged -D
pnpm install eslint -D
/* eslint-env node */
// .eslintrc.cjs
require("@rushstack/eslint-patch/modern-module-resolution");module.exports = {root: true,env: {node: true,},parser: "vue-eslint-parser",parserOptions: {parser: "@typescript-eslint/parser",ecmaVersion: "latest",sourceType: "module",jsxPragma: "React",ecmaFeatures: {jsx: true,},},extends: ["plugin:vue/vue3-essential","@vue/typescript/recommended","eslint:recommended","@vue/eslint-config-typescript","@vue/eslint-config-prettier",],
};

安装prettier

pnpm install prettier -D
pnpm install pretty-quick -D
// .prettierrc.json
{"$schema": "https://json.schemastore.org/prettierrc","semi": false,"tabWidth": 2,"singleQuote": false,"printWidth": 100,"trailingComma": "none","bracketSpacing": true
}

添加stylelint3

pnpm install stylelint-order -D
pnpm install stylelint-config-standard -D
pnpm install stylelint-config-prettier -D
pnpm install stylelint-config-recommended
pnpm install stylelint-config-html -D
pnpm install postcss-html -D
pnpm install stylelint -D
# .stylelintignore
/dist/*
/public/*
public/*
// .stylelintrc.js
module.exports = {root: true,plugins: ["stylelint-order"],customSyntax: "postcss-html",extends: ["stylelint-config-standard", "stylelint-config-prettier"],rules: {"selector-class-pattern": null,"selector-pseudo-class-no-unknown": [true,{ignorePseudoClasses: ["global"]}],"selector-pseudo-element-no-unknown": [true,{ignorePseudoElements: ["v-deep"]}],"at-rule-no-unknown": [true,{ignoreAtRules: ["tailwind","apply","variants","responsive","screen","function","if","each","include","mixin"]}],"no-empty-source": null,"named-grid-areas-no-invalid": null,"unicode-bom": "never","no-descending-specificity": null,"font-family-no-missing-generic-family-keyword": null,"declaration-colon-space-after": "always-single-line","declaration-colon-space-before": "never","rule-empty-line-before": ["always",{ignore: ["after-comment", "first-nested"]}],"unit-no-unknown": [true, { ignoreUnits: ["rpx"] }],"order/order": [["dollar-variables","custom-properties","at-rules","declarations",{type: "at-rule",name: "supports"},{type: "at-rule",name: "media"},"rules"],{ severity: "warning" }]},ignoreFiles: ["**/*.js", "**/*.jsx", "**/*.tsx", "**/*.ts", "**/*.json"],overrides: [{files: ["*.vue", "**/*.vue", "*.html", "**/*.html"],extends: ["stylelint-config-recommended", "stylelint-config-html"],rules: {"keyframes-name-pattern": null,"selector-pseudo-class-no-unknown": [true,{ignorePseudoClasses: ["deep", "global"]}],"selector-pseudo-element-no-unknown": [true,{ignorePseudoElements: ["v-deep", "v-global", "v-slotted"]}]}}]
};

在package.json中添加lint脚本

// package.json
"scripts":{"lint:eslint": "eslint --cache --max-warnings 0  \"{src,mock,build}/**/*.{vue,js,ts,tsx}\" --fix","lint:prettier": "prettier --write  \"src/**/*.{js,ts,json,tsx,css,less,scss,vue,html,md}\"","lint:stylelint": "stylelint --cache --fix \"**/*.{vue,css,scss,postcss,less}\" --cache --cache-location node_modules/.cache/stylelint/","lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js","lint:pretty": "pretty-quick --staged","lint": "pnpm lint:eslint && pnpm lint:prettier && pnpm lint:stylelint",
}

安装husky

npx husky-init   // 初始化husky
pnpm install
# .husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"npm test
npm run lint:lint-staged
npm run lint:pretty
// .husky/lintstagedrc.js
// 配置lint-stage
module.exports = {"*.{js,jsx,ts,tsx}": ["eslint --fix", "prettier --write"],"{!(package)*.json}": ["prettier --write--parser json"],"package.json": ["prettier --write"],"*.vue": ["eslint --fix", "prettier --write", "stylelint --fix"],"*.{vue,css,scss,postcss,less}": ["stylelint --fix", "prettier --write"],"*.md": ["prettier --write"]
};

添加commitlint

安装commitlint

pnpm install @commitlint/config-conventional @commitlint/cli -D

配置commitlint

// commitlint.config.js
module.exports = {ignores: [(commit) => commit.includes("init")],extends: ["@commitlint/config-conventional"],rules: {"body-leading-blank": [2, "always"],"footer-leading-blank": [1, "always"],"header-max-length": [2, "always", 108],"subject-empty": [2, "never"],"type-empty": [2, "never"],"type-enum": [2,"always",["feat","fix","perf","style","docs","test","refactor","build","ci","chore","revert","wip","workflow","types","release",],],},
};

集成到husky

# commit-msg
#!/bin/sh# shellcheck source=./_/husky.sh
. "$(dirname "$0")/_/husky.sh"npx --no-install commitlint --edit "$1"

安装常用工具

安装tailwind

pnpm install -D tailwindcss@latest postcss@latest autoprefixer@latest
npx tailwindcss init
// main.ts
import "tailwindcss/tailwind.css"

配置tailwind4

// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {darkMode: "class",corePlugins: {preflight: false},content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],theme: {extend: {colors: {bg_color: "var(--el-bg-color)",primary: "var(--el-color-primary)",primary_light_9: "var(--el-color-primary-light-9)",text_color_primary: "var(--el-text-color-primary)",text_color_regular: "var(--el-text-color-regular)",text_color_disabled: "var(--el-text-color-disabled)"}}},plugins: []
}

安装element-plus5

pnpm install element-plus

配置volar提示

// tsconfig.json
{"compilerOptions": {"types": ["element-plus/global"]},
}

配置按需导入

pnpm install -D unplugin-vue-components unplugin-auto-import
// vite.config.ts
import { defineConfig } from 'vite'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({// ...plugins: [// ...AutoImport({resolvers: [ElementPlusResolver()],dts: "types/auto-imports.d.ts"}),Components({resolvers: [ElementPlusResolver()],dts: "types/components.d.ts"}),],
})
// tsconfig.json
{"include": ["types/*.d.ts"],
}

引用


  1. 快速上手 | Vue.js (vuejs.org) ↩︎

  2. Commitizen (commitizen-tools.github.io) ↩︎

  3. Home | Stylelint 中文文档 (bootcss.com) ↩︎

  4. 安装 - Tailwind CSS 中文文档 ↩︎

  5. 快速开始 | Element Plus (gitee.io) ↩ ↩︎

【Vue】Vue3脚手架相关推荐

  1. 前端框架vue04~~vue.cli脚手架的基本使用

    文章目录 [1. Vue-CLI脚手架](https://cli.vuejs.org/zh/guide/) [2. 安装](https://cli.vuejs.org/zh/guide/install ...

  2. vue.cli脚手架初次使用图文教程

    vue-cli作用 vue-cli作为vue的脚手架,可以帮助我们在实际开发中自动生成vue.js的模板工程. vue-cli使用 !!前提:需要vue和webpack 安装全局vue-cli npm ...

  3. vue使用脚手架的单文件组件环境搭建

    每一次新下载配置一个新的东西都会出现各种奇奇怪怪的问题,配置好几次,以此记录. 组件 把一个页面拆分成一堆组件,每个组件都有自己的html.css 作用:简化项目编程,复用编码,提高运行效率 单文件组 ...

  4. 在vue新版脚手架中下载和使用jquery

    1.在vue新版脚手架中下载jquery npm i jquery --save 2.在vue.config.js文件中加入以下代码: module.exports = {chainWebpack: ...

  5. Vue项目脚手架搭建

    Vue项目脚手架搭建 Vue 项目脚手架搭建需要的工具 安装NodeJs 安装vue-cli 安装webpack 初始化项目 启动项目 Vue 项目脚手架搭建需要的工具 NodeJs vue-cli ...

  6. Vue2.x 核心基础(Vue概述,Vue基本使用,@vue/cli脚手架,Element-UI 的基本使用,Vue模板语法)

    1. Vue概述 尤雨溪:Vue.js的创建者 2014年2月,Vue.js正式发布 2015年10月27日,正式发布1.0.0 2016年4月27日,发布2.0的预览版本 Vue:渐进式JavaSc ...

  7. springBoot前后端不分离Vue+elementUI脚手架

    新建SpringBoot2.4.4项目. 目录结构如下 新建html页面 login.js文件 接口 完整项目在我的资源中SpringBoot前后端不分离vue+element脚手架_springbo ...

  8. vue创建脚手架时常见的报错

    我们在创建脚手架结构时,会出现很多的报错:为此我搜集了一些常见的报错: 1. error Mixed spaces and tabs no-mixed-spaces-and-tabs 这个报错代表缩进 ...

  9. 2021-10-27 Vue安装脚手架npm install -g @vue/cli命令失败_因为文件已存在

    这里写自定义目录标题 Vue安装脚手架npm install -g @vue/cli命令失败_因为文件已存在 Vue安装脚手架npm install -g @vue/cli命令失败_因为文件已存在 1 ...

  10. 猿创征文|【Vue五分钟】 Vue Cli脚手架创建一个项目

    目录 前言 一.创建项目的操作步骤 选择路由模式 选择CSS预编译器 选择如何存放配置 自动下载项目所需的包文件 二.启动vue项目 1.项目目录 2.启动项目 3.浏览器打开项目首页界面 三.项目的 ...

最新文章

  1. Swift 中使用Alamofire 免证书的设置
  2. 我开发Linux服务程序的工作环境搭配
  3. (Spring)依赖注入
  4. @RequestMapping的使用
  5. oracle 压测工具 ld,Oracle压力测试工具使用说明
  6. [css] 你用过outline属性吗?它有什么运用场景
  7. BZOJ2948 : [Poi2001]绿色游戏
  8. Spark NaiveBayes Demo 朴素贝叶斯分类算法
  9. 深入Java核心:JVM中的栈和局部变量
  10. 一个月市值蒸发116亿元,《姜子牙》救不了光线传媒
  11. 抖音回应视频泄露:草稿不会上传后台;苹果开卖5000元印度版iPhone XR;Jboot 2.2.5发布|极客头条...
  12. oracle怎么恢复删除数据库数据库文件,Oracle只有数据文件恢复数据库
  13. 36.Linux/Unix 系统编程手册(下) -- 进程资源
  14. java中复制图片_2017.5.3 java中 复制图片的4种方式(copy图片只能用字节流对象)...
  15. 【python】15行代码下载快手无水印短视频
  16. SAP成都研究院非典型程序猿,菜园子小哥:当我用UI5诊断工具时我用些什么
  17. 变限积分求导公式总结_变限积分求导公式是什么?
  18. 小米平板可以编程c语言吗,小米平板方便使用吗
  19. Need assistance with accessing your developer account
  20. android获取指纹信息最新,# android 指纹识别并检测指纹库是否变更

热门文章

  1. 小白学习ppt---珞珈carlos
  2. 关于手机定位精度的调研报告
  3. 算法设计与分析5.11求解满足方程解问题
  4. 浏览器中访问网页、回退及前进模拟
  5. adams 两角之差测量 平动转动物体角度测量
  6. APP开发项目流程详解,长知识了!
  7. 基于SDWAN的智能选路技术实现
  8. 数据中台=大数据平台+数据资产管理平台+数据服务平台
  9. 通信核心网linux,基于linux的双模智能手机实现方案
  10. 菜鸡教程(1):简易游戏每周推荐小程序制作