当前位置: 首页 > article >正文

Vue-02 (使用不同的 Vue CLI 插件)

使用不同的 Vue CLI 插件

Vue CLI 插件扩展了 Vue 项目的功能,让你可以轻松集成 TypeScript、Vuex、路由等功能。它们可以自动进行配置和设置,从而节省您的时间和精力。了解如何使用这些插件对于高效的 Vue 开发至关重要。

了解 Vue CLI 插件

Vue CLI 插件本质上是扩展 Vue CLI 功能的 npm 包。它们为常见任务和集成提供预配置的设置,例如添加 linter、设置测试环境或与后端服务集成。插件可以修改你的项目文件,安装依赖项,并向 Vue CLI 添加新命令。

插件类型

Vue CLI 插件主要有两大类:

  1. 官方插件: 这些由 Vue.js 核心团队维护,通常被认为是最稳定和可靠的。示例包括 @vue/cli-plugin-babel@vue/cli-plugin-eslint@vue/cli-plugin-router@vue/cli-plugin-vuex@vue/cli-plugin-typescript
  2. 社区插件: 这些是由 Vue.js 社区创建和维护的。它们可以为各种使用案例提供功能,但在使用它们之前评估其质量和可维护性非常重要。

插件的工作原理

插件通过挂接到 Vue CLI 的构建过程并修改项目的配置来工作。他们可以:

  • 将依赖项添加到您的 package.json 文件中。
  • 修改 vue.config.js 文件(如果不存在,请创建一个文件)。
  • 在项目中添加或修改源文件。
  • 使用 Vue CLI 注册新命令。

安装和使用插件

插件通常使用 Vue CLI 的 vue add 命令进行安装。此命令会自动从 npm 下载插件并运行其安装脚本,从而配置您的项目。

安装官方插件

要安装官方插件,请使用以下命令:

vue add <plugin-name>

例如,要添加 Vue Router 插件:

vue add @vue/cli-plugin-router

然后,CLI 将提示您使用特定于插件的选项。对于路由器,它可能会询问您是否要使用历史模式。

安装 Community 插件

安装社区插件与安装官方插件相同:

vue add <plugin-name>

例如,要添加一个名为 vue-cli-plugin-my-component-library 的假设社区插件 :

vue add vue-cli-plugin-my-component-library

社区插件的重要注意事项:

  • 信任: 确保插件来自信誉良好的来源。检查 npm 包的作者、下载和 GitHub 存储库(如果可用)。
  • 维护: 验证插件是否得到积极维护。查看 GitHub 存储库上的上次提交日期和未解决的问题数。
  • 文档: 良好的文档至关重要。文档齐全的插件更易于使用和故障排除。
  • 依赖: 注意插件的依赖项。确保它们与您的项目兼容,并且不会引入任何安全漏洞。

插件选项和配置

许多插件都提供了允许您自定义其行为的配置选项。这些选项可以在安装过程中指定,也可以稍后在 vue.config.js 文件中进行修改。

示例:配置 ESLint 插件

安装 @vue/cli-plugin-eslint 插件时,系统可能会提示您选择 ESLint 配置预设(例如,Airbnb、Standard 或 Prettier)。您还可以直接在 .eslintrc.js 文件中配置 ESLint 规则。

// .eslintrc.js
module.exports = {root: true,env: {node: true,},'extends': ['plugin:vue/essential','eslint:recommended'],rules: {'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off','no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off','semi': ['error', 'always'], // Enforce semicolons'quotes': ['error', 'single'], // Enforce single quotes},parserOptions: {parser: 'babel-eslint',},
}

示例:配置 TypeScript 插件

安装 @vue/cli-plugin-typescript 插件时,您可以在 tsconfig.json 文件中配置 TypeScript 选项。

// tsconfig.json
{"compilerOptions": {"target": "esnext","module": "esnext","strict": true,"jsx": "preserve","moduleResolution": "node","esModuleInterop": true,"sourceMap": true,"baseUrl": ".","paths": {"@/*": ["src/*"]},"lib": ["esnext","dom","dom.iterable","scripthost"]},"include": ["src/**/*.ts","src/**/*.tsx","src/**/*.vue","tests/**/*.ts","tests/**/*.tsx"],"exclude": ["node_modules"]
}

更新插件

要更新插件,你可以使用 vue upgrade 命令:

vue upgrade @vue/cli-plugin-<plugin-name>

此命令会将插件更新到最新版本并运行任何必要的迁移脚本。最好让您的插件保持最新状态,以便从错误修复、性能改进和新功能中受益。

常见的 Vue CLI 插件及其用例

以下是一些最常用的 Vue CLI 插件及其用例:

  • @vue/cli-plugin-babel 将现代 JavaScript (ES6+) 转译为与旧浏览器兼容的旧版本。这几乎总是被使用。
  • @vue/cli-plugin-eslint 对你的 JavaScript 和 Vue 代码进行 lint 检查以强制执行代码风格并防止错误。帮助保持代码质量和一致性。
  • @vue/cli-plugin-typescript 为您的项目添加 TypeScript 支持。提供静态类型和改进的代码可维护性。
  • @vue/cli-plugin-router 设置 Vue 路由器来处理应用程序中的导航。对于具有多个视图的单页应用程序至关重要。
  • @vue/cli-plugin-vuex 集成 Vuex 以进行集中式状态管理。用于管理复杂的应用程序状态。
  • @vue/cli-plugin-pwa 将您的 Vue 应用程序转换为渐进式 Web 应用程序 (PWA)。允许用户在他们的设备上安装您的应用程序并离线使用。
  • @vue/cli-plugin-unit-jest 设置 Jest 以对您的组件进行单元测试。
  • @vue/cli-plugin-e2e-cypress 设置 Cypress 以端到端测试您的应用程序。

实际示例和演示

让我们来看看一些使用 Vue CLI 插件的实际示例。

示例 1:将 Vuex 添加到现有项目

假设你有一个在上一课中创建的 Vue 项目,现在你想添加 Vuex 进行状态管理。

  1. 安装 Vuex 插件:

    vue add @vue/cli-plugin-vuex
    
  2. 回答提示: CLI 将询问您是否要创建新商店。回答是。

  3. 检查更改: 该插件将:

    • vuex 添加为 package.json 文件中的依赖项。
    • 使用基本的 Vuex store 设置创建一个 src/store/index.js 文件。
    • src/main.js 文件中导入并使用 store。
  4. 在你的组件中使用 Vuex:

    <template><div><p>Count: {{ count }}</p><button @click="increment">Increment</button></div>
    </template><script>
    import { mapState, mapMutations } from 'vuex';export default {computed: {...mapState(['count'])},methods: {...mapMutations(['increment'])}
    };
    </script>
    

    src/store/index.js 中:

    import Vue from 'vue'
    import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {count: 0},mutations: {increment (state) {state.count++}},actions: {},modules: {}
    })
    

示例 2:将 TypeScript 添加到现有项目

假设你想在现有的 Vue 项目中添加 TypeScript 支持。

  1. 安装 TypeScript 插件:

    vue add @vue/cli-plugin-typescript
    
  2. **回答提示:**CLI 将询问您是否要使用类样式的组件。现在选择 “no” 以保持简单。

  3. 检查更改: 该插件将:

    • typescriptts-loader 和其他相关依赖项添加到您的 package.json 文件中。
    • 使用 TypeScript 编译器选项创建 tsconfig.json 文件。
    • main.js 文件重命名为 main.ts
    • 更新您的 webpack 配置以处理 .ts.tsx 文件。
  4. 将组件转换为 TypeScript:

    <template><div><p>Message: {{ message }}</p></div>
    </template><script lang="ts">
    import { defineComponent } from '@vue/composition-api';export default defineComponent({data() {return {message: 'Hello, TypeScript!'};}
    });
    </script>
    

示例 3:添加 Linter/Formatter

让我们将 eslintprettier 添加到现有项目中。

  1. 安装 ESLint 插件:

    vue add @vue/cli-plugin-eslint
    
  2. 回答提示: 选择您喜欢的 linting 样式(例如,Airbnb、Standard 或 Prettier)。选择保存时 linting。

  3. 安装 Prettier: 如果你没有在 ESLint 设置中选择它,你可以单独添加它。通常,这涉及安装 eslint-plugin-prettiereslint-config-prettier。具体步骤取决于你的 ESLint 配置。

  4. 配置 ESLint 和 Prettier: 修改 .eslintrc.js.prettierrc.js 文件以自定义 linting 和格式设置规则。

    // .eslintrc.js
    module.exports = {root: true,env: {node: true,},'extends': ['plugin:vue/essential','eslint:recommended','plugin:prettier/recommended' // Add this line],rules: {'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off','no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off','semi': ['error', 'always'],'quotes': ['error', 'single'],},parserOptions: {parser: 'babel-eslint',},
    }
    
    // .prettierrc.js
    module.exports = {semi: true,singleQuote: true,trailingComma: 'es5',
    };
    

相关文章:

Vue-02 (使用不同的 Vue CLI 插件)

使用不同的 Vue CLI 插件 Vue CLI 插件扩展了 Vue 项目的功能&#xff0c;让你可以轻松集成 TypeScript、Vuex、路由等功能。它们可以自动进行配置和设置&#xff0c;从而节省您的时间和精力。了解如何使用这些插件对于高效的 Vue 开发至关重要。 了解 Vue CLI 插件 Vue CLI…...

理解vue-cli 中进行构建优化

在 Vue CLI 项目中进行构建优化&#xff0c;是前端性能提升的重要手段。它涉及到 Webpack 配置、代码分包、懒加载、依赖优化、图片压缩等多个方面。 &#x1f9f1; 基础构建优化 设置生产环境变量 NODE_ENVproduction Vue CLI 会自动在 npm run build 时开启以下优化&…...

理解计算机系统_线程(九):线程安全问题

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#xff0c;对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 接续理解计算机系统_线程(八):并行-CSDN博客,内容包括12.7…...

vue3基本类型和对象类型的响应式数据

vue3中基本类型和对象类型的响应式数据 OptionsAPI与CompstitionAPI的区别 OptionsAPI Options API • 特点&#xff1a;基于选项&#xff08;options&#xff09;来组织代码&#xff0c;将逻辑按照生命周期、数据、方法等分类。• 结构&#xff1a;代码按照 data 、 methods…...

3.8.4 利用RDD实现分组排行榜

本实战任务通过Spark RDD实现学生成绩的分组排行榜。首先&#xff0c;准备包含学生成绩的原始数据文件&#xff0c;并将其上传至HDFS。接着&#xff0c;利用Spark的交互式环境或通过创建Maven项目的方式&#xff0c;读取HDFS中的成绩文件生成RDD。通过map操作将数据映射为二元组…...

python web flask专题-Flask入门指南:从安装到核心功能详解

Flask入门指南&#xff1a;从安装到核心功能详解 Flask作为Python最流行的轻量级Web框架之一&#xff0c;以其简洁灵活的特性广受开发者喜爱。本文将带你从零开始学习Flask&#xff0c;涵盖安装配置、项目结构、应用实例、路由系统以及请求响应处理等核心知识点。 1. Flask安…...

C语言中的“类框架”工具

C语言中的“框架”&#xff1a;库与轻量级工具生态解析 ​​一、C语言的设计哲学与框架定位​​ C语言作为一门​​系统级编程语言​​&#xff0c;核心目标是提供​​高效、灵活​​的底层控制能力。与Java、Python等高级语言不同&#xff0c;C语言本身​​不内置全栈框架​​…...

【HW系列】—web组件漏洞(Strtus2和Apache Log4j2)

本文仅用于技术研究&#xff0c;禁止用于非法用途。 文章目录 Struts2Struts2 框架介绍Struts2 历史漏洞汇总&#xff08;表格&#xff09;Struts2-045 漏洞详解 Log4j2Log4j2 框架介绍Log4j2 漏洞原理1. JNDI 注入2. 利用过程 Log4j2 历史漏洞JNDILDAP 反弹 Shell 流程 Strut…...

第六十八篇 从“超市收银系统崩溃”看JVM性能监控与故障定位实战

目录 引言&#xff1a;当技术问题遇上生活场景一、JVM的“超市货架管理哲学”二、收银员工具箱&#xff1a;JVM监控三板斧三、典型故障诊断实录四、防患于未然的运维智慧五、结语&#xff1a;从故障救火到体系化防控 引言&#xff1a;当技术问题遇上生活场景 想象一个周末的傍…...

Debian 11 之使用hostapd与dnsmasq进行AP设置

目录 1: 安装必要的软件2: 配置dnsmasq3: 配置 hostapd4: 配置网络接口5: 启动服务总结 在Debian 11&#xff08;也称为Bullseye&#xff09;下设置热点&#xff0c;你可以使用多种方法&#xff0c;但最常见和简单的方法之一是使用hostapd工具配合dnsmasq。这种方法不需要额外的…...

有铜半孔的设计规范与材料创新

设计关键参数 孔径与间距限制 最小孔径需≥0.6mm&#xff0c;孔边距≥0.5mm&#xff0c;避免铜层脱落&#xff1b;拼版时半孔区域需预留2mm间距防止撕裂。 阻焊桥设计 必须保留阻焊桥&#xff08;宽度≥0.1mm&#xff09;&#xff0c;防止焊锡流入孔内造成短路。 猎板的材料…...

机器学习知识体系:从“找规律”到“做决策”的全过程解析

你可能听说过“机器学习”&#xff0c;觉得它很神秘&#xff0c;像是让电脑自己学会做事。其实&#xff0c;机器学习的本质很简单&#xff1a;通过数据来自动建立规则&#xff0c;从而完成预测或决策任务。 这篇文章将用通俗的语言为你梳理机器学习的知识体系&#xff0c;帮助…...

STM32之FreeRTOS移植(重点)

RTOS的基本概念 实时操作系统&#xff08;Real Time Operating System&#xff09;的简称就叫做RTOS&#xff0c;是指具有实时性、能支持实时控制系统工作的操作系统&#xff0c;RTOS的首要任务就是调度所有可以利用的资源来完成实时控制任务的工作&#xff0c;其次才是提高工…...

做好测试用例设计工作的关键是什么?

测试用例设计是软件测试的核心环节,好的测试用例能高效发现缺陷,差的测试用例则可能漏测关键问题。结合多年测试经验,我认为做好测试用例设计的关键在于以下6点: 1. 深入理解需求(核心基础) ✅ 关键点: 与产品经理/开发对齐,确保理解无偏差(避免“我以为”式测试) 拆…...

R语言科研编程-标准偏差柱状图

生成随机数据 在R中&#xff0c;可以使用rnorm()生成正态分布的随机数据&#xff0c;并模拟分组数据。以下代码生成3组&#xff08;A、B、C&#xff09;随机数据&#xff0c;每组包含10个样本&#xff1a; set.seed(123) # 确保可重复性 group_A <- rnorm(10, mean50, sd…...

未来教育考试答题软件4.0【自用链接备份】

未来教育考试答题软件4.0【自用链接备份】 http://www.downyi.com/downinfo/240413.html 补丁地址:https://www.wodown.com/soft/43108.html...

OpenGL Chan视频学习-11 Uniforms in OpenGL

bilibili视频链接&#xff1a; 【最好的OpenGL教程之一】https://www.bilibili.com/video/BV1MJ411u7Bc?p5&vd_source44b77bde056381262ee55e448b9b1973 函数网站&#xff1a; docs.gl 说明&#xff1a; 1.之后就不再单独整理网站具体函数了&#xff0c;网站直接翻译…...

Flink系列文章列表

把写的文章做一个汇总&#xff0c;会陆续更新的。 Flink流处理原理与实践&#xff1a;状态管理、窗口操作与容错机制-CSDN博客...

GitLab 从 17.10 到 18.0.1 的升级指南

本文分享从 GitLab 中文本 17.10.0 升级到 18.0.1 的完整过程。 升级前提 查看当前安装实例的版本。有多种方式可以查看&#xff1a; 方式一&#xff1a; /help页面 可以直接在 /help页面查看当前实例的版本。以极狐GitLab SaaS 为例&#xff0c;在浏览器中输入 https://ji…...

产业集群间的专利合作关系

需要准备的文件&#xff1a; 全国的专利表目标集群间的企业名单 根据专利的共同申请人&#xff0c;判断这两家企业之间存在专利合作关系。 利用1_filter_patent.py&#xff0c;从全国的3000多万条专利信息中&#xff0c;筛选出与目标集群企业相关的专利。 只要专利的申请人包…...

PyQt学习系列02-模型-视图架构与数据管理

PyQt学习系列笔记&#xff08;Python Qt框架&#xff09; 第二课&#xff1a;PyQt的模型-视图架构与数据管理 一、模型-视图架构概述 1.1 什么是模型-视图架构&#xff1f; 模型-视图&#xff08;Model-View&#xff09;是Qt框架中用于数据展示和交互的核心设计模式。它将数…...

redis主从复制架构安装与部署

redis主从复制架构安装与部署 1、Redis 一主两从架构的优势2、环境准备3、下载redis4、解压缩文件5、编辑配置文件6、创建数据目录并启动Redis7、检查主从状态8、 Redis Sentinel 模式 1、Redis 一主两从架构的优势 Redis 采用一主两从&#xff08;1个主节点 2个从节点&#…...

Kotlin 中 Lambda 表达式的语法结构及简化推导

在 Kotlin 编程中&#xff0c;Lambda 表达式是一项非常实用且强大的功能。今天&#xff0c;我们就来深入探讨一下 Lambda 表达式的语法结构&#xff0c;以及它那些令人 “又爱又恨” 的简化写法。 一、Lambda 表达式完整语法结构 Lambda 表达式最完整的语法结构定义为{参数名…...

YOLOv2 深度解析:目标检测领域的进阶之路

在计算机视觉领域&#xff0c;目标检测一直是研究和应用的热点方向。YOLO&#xff08;You Only Look Once&#xff09;系列算法以其快速高效的特点&#xff0c;在目标检测领域占据了重要地位。YOLOv2 作为 YOLO 系列算法的重要迭代版本&#xff0c;在 YOLOv1 的基础上进行了诸多…...

KT6368A通过蓝牙芯片获取手机时间详细说明,对应串口指令举例

一、功能简介 KT6368A双模蓝牙芯片支持连接手机&#xff0c;获取手机的日期、时间信息&#xff0c;可以同步RTC时钟 1、无需安装任何app&#xff0c;直接使用系统蓝牙即可实现 2、同时它不影响音频蓝牙&#xff0c;还支持一些简单的AT指令进行操作 3、实现的方式&#xff1…...

计算机网络实验课(二)——抓取网络数据包,并实现根据条件过滤抓取的以太网帧,分析帧结构

文章目录 一、添加控件二、代码分析2.1 代码2.2 控件初始化2.3 打开和关闭设备2.4 开始和结束捕获2.5 设置捕获条件2.6 捕获数据包 三、运行程序四、结果分析 提要&#xff1a;如果你通过vs打开.sln文件&#xff0c;然后代码界面或者前端界面都没找到&#xff0c;视图里面也没找…...

自动生成提示技术突破:AUTOPROMPT重塑语言模型应用

AUTOPROMPT 预训练语言模型的显著成功促使人们研究这些模型在预训练期间学习了哪些类型的知识。将任务重新表述为填空题(例如,完形填空测试)是衡量此类知识的自然方法 但是,它的使用受到编写合适提示所需的手动工作和猜测的限制。为了解决这个问题,我们开发了 AUTOPROMP…...

78. Subsets和90. Subsets II

目录 78.子集 方法一、迭代法实现子集枚举 方法二、递归法实现子集枚举 方法三、根据子集元素个数分情况收集 方法四、直接回溯法 90.子集二 方法一、迭代法实现子集枚举 方法二、递归法实现子集枚举 方法三、根据子集元素个数分情况收集 方法四、直接回溯法 78.子集…...

VSCode 插件 GitLens 破解方法

文章目录 1. 安装指定版本2. 修改插件文件3. 重启 VSCode 1. 安装指定版本 在 VSCode 中打开扩展&#xff08;Ctrl Shift X&#xff09;&#xff0c;搜索 GitLens&#xff0c;右键点击 安装特定版本&#xff0c;在弹出的窗口中选择 17.0.2&#xff0c;然后等待安装完成。 2…...

linux 通过命令将 MinIO 桶的权限设置为 Custom(自定义策略)

在 Ubuntu 下&#xff0c;如果要通过命令将 MinIO 桶的权限设置为 Custom&#xff08;自定义策略&#xff09;&#xff0c;可以使用 mc&#xff08;MinIO Client&#xff09;、AWS CLI 或直接调用 MinIO API&#xff08;如 curl&#xff09;。以下是几种方法&#xff1a; 方法 …...