vue-cli vue3

news2024/11/27 0:30:59

安装 cli

  • npm i -g @vue/cli@4.5.13
  • 查看版本:vue -V
  • 升级版本:npm update -g @vue/cli

升级

  • 在 v 3.0.0 版本中是不支持的最新的 script setup 语法
  • 执行指令升级: npm i vue@3.2.8 vue-router@4.0.11 vuex@4.0.2
"vue": "^3.2.8",
"vue-router": "^4.0.11",
"vuex": "^4.0.2"

初始化项目

  • vue create 项目名称
>  - ? Please pick a preset:
  Default ([Vue 2] babel, eslint)
  Default (Vue 3) ([Vue 3] babel, eslint) 
> Manually select features  // 选择手动配置
// ----------------------------------------------------------

? Check the features needed for your project: 
 (*) Choose Vue version // 选择 vue 版本
 (*) Babel // 使用 babel
 ( ) TypeScript // 不使用 ts
 ( ) Progressive Web App (PWA) Support // 不使用 PWA
 (*) Router // 添加 vue-router
 (*) Vuex // 添加 vuex
>(*) CSS Pre-processors // 使用 css 预处理器
 (*) Linter / Formatter // 代码格式化
 ( ) Unit Testing // 不配置测试
 ( ) E2E Testing  // // 不配置测试
// ----------------------------------------------------------

 Choose a version of Vue.js that you want to start the project with 
  2.x
> 3.x // 选择 vue 3.0 版本
// ----------------------------------------------------------

 Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n) n // 不使用 history模式 的路由
// ----------------------------------------------------------

 ? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): 
> Sass/SCSS (with dart-sass) // 使用基于 dart-sass 的 scss 预处理器
  Sass/SCSS (with node-sass) 
  Less
  Stylus
// ----------------------------------------------------------

? Pick a linter / formatter config: 
  ESLint with error prevention only 
  ESLint + Airbnb config
> ESLint + Standard config // 使用 ESLint 标准代码格式化方案
  ESLint + Prettier 
// ----------------------------------------------------------

? Pick additional lint features: 
 (*) Lint on save //  
>(*) Lint and fix on commit  // 保存时 && 提交时,都进行 lint

Eslint 规范代码

常用的规则扩展:

在这里插入图片描述

  • .eslintrc.js
  • ESLint 配置文件遵循 commonJS 的导出规则,所导出的对象就是 ESLint 的配置对象
  • 文档:https://eslint.bootcss.com/docs/user-guide/configuring
module.exports = {
  // 表示当前目录即为根目录,ESLint 规则将被限制到该目录下
  root: true,
  // env 表示启用 ESLint 检测的环境
  env: {
    // 在 node 环境下启动 ESLint 检测
    node: true,
  },
  // ESLint 中基础配置需要继承的配置
  extends: [
    /**
      vue/attribute-hyphenation:要求组件属性使用连字符命名,而不是驼峰命名。
      vue/html-closing-bracket-newline:要求HTML标签的右括号放置在新的一行。
      vue/html-closing-bracket-spacing:要求HTML标签的右括号前面有空格或换行符。
      vue/html-end-tags:要求HTML标签有明确的结束标记。
      vue/html-indent:要求HTML标签的缩进使用指定的空格数。
      vue/html-self-closing:要求没有内容的HTML标签使用自闭合形式。
      vue/max-attributes-per-line:要求每行最多只能有指定数量的属性。
      vue/no-template-shadow:禁止在Vue模板中使用与父级作用域中已声明的变量相同的变量名。
     */
    "plugin:vue/vue3-essential", // vue3 校验规则
    "@vue/standard", // vue 常规校验规则
  ],
  // 解析器
  parserOptions: {
    parser: "babel-eslint",
  },
  // 启用的规则及其各自的错误级别
  /**
   * 错误级别分为三种:
   * "off" 或 0 - 关闭规则
   * "warn" 或 1 - 开启规则,使用警告级别的错误:warn (不会导致程序退出)
   * "error" 或 2 - 开启规则,使用错误级别的错误:error (当被触发的时候,程序会退出)
   */
  rules: {
    "no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
    "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
    // eslint 希望函数名和括号之间需要空格,和 prettier 产生冲突
    "space-before-function-paren": "off",
    "no-unused-expressions": "off",
    "no-unused-vars": "off",
  },
};

prettier 格式化代码

  • 创建 .prettierrc 文件
  • 安装 vscode 扩展 [Prettier - Code formatter]
  • 测试地址:https://prettier.io/playground/
{
  "semi":false, // 结尾不要分号
  "singleQuote":true, // 使用单引号
  "trailingComma":"none", // 尾随逗号、最后一行除外
}
  • 设置保存自动格式化

在这里插入图片描述

  • vsCode 默认一个 tab === 4个空格,而 ESint 一个 tab 希望为两个空格

在这里插入图片描述

  • 如果 vsCode 安装多个代码格式化工具,点击鼠标右键,选择 prettier
    加粗样式

约定式提交

  • 安装工具(提交时自动填写并生成符合规范的提交消息):
npm install -g commitizen@4.2.4
  • 安装插件(Commitizen 的插件,允许自定义提交消息的格式)
npm i cz-customizable@6.3.0 -D
  • package.json
  "config": {
    "commitizen": {
      "path": "node_modules/cz-customizable"
    }
  }
  • 创建自定义提交内容,cz-config.js 文件
module.exports = {
  // 可选类型
  types: [
    { value: 'feat', name: 'feat: 新功能' },
    { value: 'fix', name: 'fix: 修复' },
    { value: 'docs', name: 'docs: 文档变更' },
    { value: 'style', name: 'style: 样式' },
    { value: 'refactor', name: 'refactor: 重构' },
    { value: 'perf', name: 'perf: 性能优化' },
    { value: 'test', name: 'test: 增加测试' },
    { value: 'chore', name: 'chore: 构建过程或辅助工具的变动' },
    { value: 'revert', name: 'revert: 回退' },
    { value: 'build', name: 'build: 打包' }
  ],
  // 消息步骤
  messages: {
    type: '请选择提交类型:', // commit 时选择以上 types 对应选择
    customScope: '请输入修改范围(可选):',
    subject: '请简要描述提交(必填):',
    body: '请输入详细描述(可选):',
    footer: '请输入要关闭的issue(可选):',
    confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
  },
  skipQuestions: ['customScope', 'body', 'footer'], // 可以跳过的问题(对应 messages)
  subjectLimit: 72 // 文字长度
}
  • 指令:git cz 代替 git commit

commitlint 检查提交描述规范

  • 安装工具:
  • @commitlint/cli 用于在代码仓库中运行 commitlint,校验代码提交消息是否符合指定规范
  • @commitlint/config-conventional 预设的 commitlint 配置包,基于常见 Git 提交约定提供了一套默认规则
npm i -D @commitlint/cli@12.1.4 @commitlint/config-conventional@12.1.4
  • 创建:commitlint.config.js 文件
// 使用 UTF-8
module.exports = {
  // 继承的规则
  extends: ['@commitlint/config-conventional'],
  // 定义规则类型
  rules: {
    // type 类型定义,表示 git 提交的 type 必须在以下类型范围内
    'type-enum': [
      // 验证的错误级别 类似 eslint warn
      2,
      // 什么情况下验证 一直验证
      'always',
      [
        'feat', // 新功能 feature
        'fix', // 修复 bug
        'docs', // 文档注释
        'style', // 代码格式(不影响代码运行的变动)
        'refactor', // 重构(既不增加新功能,也不是修复bug)
        'perf', // 性能优化
        'test', // 增加测试
        'chore', // 构建过程或辅助工具的变动
        'revert', // 回退
        'build' // 打包
      ]
    ],
    // subject 大小写不做校验
    'subject-case': [0]
  }
}


husky

-1 安装:

 npm i husky@7.0.1 -D
  • 生成 .husky 文件
npx husky install
  • 初始化 husky 配置:
npm set-script prepare 'husky install'
"scripts": {
  "prepare": "husky install"
}
npm run prepare
  • 检验提交规范( 通过 husky 监听 commit-msg 钩子 ):在 .husky 文件中生成 commit-msg 文件
  • 使用 husky 提供的 add 命令来添加一个钩子类型 commit-msg,会在提交消息时触发

npx: 执行 npm 包中的命令。
–no-install: 不进行包的安装,即不会自动安装 commitlint。
commitlint: 是一个用于规范化提交消息格式的工具。
–edit: 表示编辑模式,命令会打开一个文本编辑器供用户编辑 commit message。
$1: 是一个占位符,表示第一个参数,通常用于指定待提交的文件或信息。

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
  • 检验代码规范( 通过 husky 监听 pre-commit 钩子 ):在 .husky 文件中生成 pre-commit 文件
npx husky add .husky/pre-commit "npx eslint --ext .js,.vue src"

lint-staged 自动修正代码格式

  • package.json
  "lint-staged":{
    "src/**/*.{js,vue}":[
      "eslint --fix",
      "git add"
    ]
  }
  • .husky 文件 > pre-commit 将指令修改成 npx lint-staged

vetur

  • 在 vue2 中,template 只允许存在一个根元素,但 vue3 发生变化,支持 template 存在多个根元素。
  • 可以通过以下方案来 取消 vetur 对 template 的检测:
  • 在 VSCode 的设置中,搜索 vetur,找到如下设置,取消勾选,重启 VSCode

在这里插入图片描述


element-plus

  • plugins 文件夹 > element.js
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

export default app => {
  app.use(ElementPlus)
}
  • main.js
import installElementPlus from './plugins/element'
const app = createApp(App)
installElementPlus(app)

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

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

相关文章

方案:AI赋能,森林防火可视化智能监管与风险预警系统解决方案

一、方案背景 森林火灾是世界八大自然灾害之一,具有发生面广、突发性强、破坏性大、危险性高、处置扑救特别困难等特点,严重危及人民生命财产和森林资源安全,甚至引发生态灾难。有效预防和及时控制森林火灾是保护国家生态建设成果、推进生态…

SOLIDWORKS三维剖视图怎么做

1.SOLIDWORKS一般剖视图制作方法, a.先选择剖面视图命令制作(常用) b.先绘制剖切线制作剖视图,绘制剖切线—选择剖面视图命令 2.SOLIDWORKS剖面线的调整。当对默认剖面线不满意时,可以双击剖面线对剖面线进行调整调整 …

Qt重写QTreeWidget实现拖拽

介绍 此文章记录QTreeWidget的重写进度,暂时停滞使用,重写了QTreeWidget的拖拽功能,和绘制功能,自定义了数据结构,增加复制,粘贴,删除,准备实现动态刷新数据支持千万数据动态刷新&a…

Postman应用——Pre-request Script和Test Script脚本介绍

文章目录 Pre-request Script所在位置CollectionFolderRequest Test Script所在位置CollectionFolderRequest Pre-request Script(前置脚本):可以使用在Collection、Folder和Request中,并在Request请求之前执行,可用于…

整站抓取的神器

整站抓取的神器 TeleportUltraWebZipMihov Picture DownloaderWinHTTrack HTTrackMaxprogWebDumper 五款整站抓取的工具 TeleportUltra Teleport Ultra所能做的,不仅仅是离线浏览某个网页(让你离线快速浏览某个网页的内容当然是它的一项重要功能),它可…

链表oj题2(Leetcode)(牛客)——合并两个有序链表;判断回文链表;链表分割

链表oj题2(Leetcode)(牛客) 一,合并两个有序链表1.1分析2.2代码 二,链表的回文结构2.1分析2.2代码 三,链表分割3.1分析3.2代码 四,小结 一,合并两个有序链表 合并两个有…

vue的工程化开发全流程,以及开发中的细节语法和用法

vue的工程化开发全流程 文章目录 vue的工程化开发全流程1、工程化开发&脚手架Vue CLI1.1、前言1.2、脚手架Vue CLI1.3、脚手架目录文件介绍&项目运行流程1.4、组件化开发&根组件1.5、普通组件的注册使用 2、工程化开发细则2.1、组件的三大组成部分2.2、组件的样式冲…

yolov8在设置amp=False 之后map 训练依旧为0 解决办法

可能原因 是cuda 版本导致的半精度浮点数计算出现nan的bug 解决办法 设置ampFalse 就是不使用混合精度训练。或者直接改用低版本的cuda和pytorch。cuda11.6 以下 直接有效也有可能是学习率过高 降低学习率 设置ampFalse之后还是存在问题 是因为yolov8库的问题 按以下修改 找到…

RKDevTool打包成update.img

(1) 准备好RKDevTool_Release和rockdev目录相关的文件工具 (2) 在rockdev建立image目录 (3) 往image填入和package-file有关的img文件 (4) 运行需要的xxx_mkupdate文件,直到生成想要的update.img (5) 导入烧录工具,文件大,需要等待一段时间,进入MASKROM模式,点击烧录upd…

我只是个小市民——经受不住宏大叙事

我只是个小市民 ——经受不住宏大叙事 作日看到一个曾经的朋友在朋友圈晒出了在某地旅游的照片,照片清新动人,狠狠地打入了我的内心,我知道光靠手机是拍不出来这样唯美的画面的,于是我问她是如何弄出这么好看的照片,…

淘宝商品sku数据接口监控

淘宝商品sku数据接口监控是指通过API接口对淘宝店铺的商品库存、价格、销售量等数据进行实时监控,以便商家能够及时调整销售策略、优化库存、了解竞争对手的动态等。 监控的具体功能包括: 实时监控商品库存和价格变化,及时调整自己的销售策…

数据结构前瞻

集合框架 JAVA的集合框架是定义在java.util包下的一组接口和实现类,用于将多个元素置于一个单元中,对这些元素进行快速,便捷的存储,减速和管理,即增删查改 下面的格子,黄色代表接口,蓝色代表抽…

监控办公室电脑用什么软件?

监控办公室员工电脑的工作情况是一项非常重要的管理任务,它可以帮助企业管理者及时发现员工的问题、提高工作效率和保障企业安全。以下是一些具体的方法和步骤,供您参考: 1、安装监控软件 在监控员工电脑之前,您需要先安装一款专…

Redis核心数据结构实战与高性能解析

目录 一、安装Redis 二、Redis线程与高性能 2.1 Redis是单线程么? 2.2 Redis读写是单线程为何这么快? 2.3 Redis如何处理并发操作命令? 三、核心数据结构实战 3.1 字符串常用操作实战 SET 存入键值对 SETNX SETEX MSET 批量存入键…

vue3中两个el-select下拉框选项相互影响

vue3中两个el-select下拉框选项相互影响 1、开发需求2、代码2.1 定义hooks文件2.2 在组件中使用 1、开发需求 如图所示,在项目开发过程中,遇到这样一个需求,常规时段中选中的月份在高峰时段中是禁止选择的状态,反之亦然。 2、代…

《Cesium 进阶知识点》- 关闭天空盒,自定义背景图

效果 关键代码 1.代码第 4 行,初始化时配置 webgl.alpha 为 true; 2.代码第 8 行,不显示天空盒; 3.代码第 9 行,背景色透明; const viewer new Cesium.Viewer(cesiumContainer, {contextOptions: {…

室内导航制作:从背景到实施效益的全面解析

室内导航市场需求的增长主要源于两方面:一是人们对便捷生活的追求,二是物联网、大数据、人工智能等技术的发展。在日常生活中,我们经常需要在复杂的环境中进行定位和导航,比如大型购物商场、机场、车站等。传统的室外导航方式无法…

雷龙CS SD NAND(贴片式TF卡)性能体验及应用

前段时间有幸得到了雷龙出品的贴片式的TF卡的芯片及转接板,从而对其产品进行了相应的了解和测评。 从获得的相关资料看,雷龙出品的贴片式芯片分为两类,即BOW型和AOW型,其中BOW型为第一代产品,属商业级;AOW…

评价实施范围

声明 本文是学习GB-T 42874-2023 城市公共设施服务 城市家具 系统建设实施评价规范. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件确立了城市家具系统建设实施的评价原则、评价流程,给出了评价指标,描述了 方…

Zabbix“专家坐诊”第204期问答汇总

问题一 Q:请问自动发现如何配置? A:在Zabbix中配置自动发现,可以使用以下步骤: 登录到Zabbix的Web界面。 确保您具有管理员或具有适当权限的用户角色。 导航到“配置”菜单,然后选择“自动发现”。 点击…