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

news2025/5/29 14:27:25

使用不同的 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',
    };
    

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

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

相关文章

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

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#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安…

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

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

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

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

STM32之FreeRTOS移植(重点)

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

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

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

OpenGL Chan视频学习-11 Uniforms in OpenGL

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

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;筛选出与目标集群企业相关的专利。 只要专利的申请人包…

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;视图里面也没找…

78. Subsets和90. Subsets II

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

ElasticSearch整合SpringBoot

ElasticSearch 整合SpringBoot ES官方提供了各种不同语言的客户端。用来操作ES。这些客户端的本质就是组装DSL语句&#xff0c;通过HTTP请求发送给ES。 设计索引库 跟据数据库的表结构进行ES索引库的创建时。如果字段需要进行倒排索引的时候请为它指定分词器。如果该字段不是…

2025上半年软考高级系统架构设计师经验分享

笔者背景 笔者在成都工作近7年&#xff0c; 一直担任研发大头兵&#xff0c;平日工作主要涵盖应用开发&#xff08;Java&#xff09;与数仓开发&#xff0c;对主流数据库、框架等均有涉猎&#xff0c;但谈不上精通。 最近有一些职业上的想法&#xff0c;了解到软考有那么一丁点…

uni-app学习笔记十二-vue3中创建组件

通过组件&#xff0c;可以很方便地实现页面复用&#xff0c;减少重复页面的创建&#xff0c;减少重复代码。一个页面可以引入多个组件。下面介绍在HBuilder X中创建组件的方法&#xff1a; 一.组件的创建 1.选中项目&#xff0c;右键-->新建目录(文件夹)&#xff0c;并将文…

一键启动多个 Chrome 实例并自动清理的 Bash 脚本分享!

目录 一、&#x1f4e6; 脚本功能概览 二、&#x1f4dc; 脚本代码一览 三、&#x1f50d; 脚本功能说明 &#xff08;一&#xff09;✅ 支持批量启动多个 Chrome 实例 &#xff08;二&#xff09;✅ 每个实例使用独立用户数据目录 &#xff08;三&#xff09;✅ 启动后自…

4 月 62100 款 App 被谷歌下架!环比增长 28%

大家好&#xff0c;我是牢鹅&#xff01;上周刚刚结束的 2025 年 Google I/O 开发者大会&#xff0c; Google Play 带来了一系列的更新&#xff0c;主要围绕提升优质 App 的"发现"、"互动"和"收入"三大核心内容。 这或许正是谷歌生态的一个侧影…

mediapipe标注视频姿态关键点(基础版加进阶版)

前言 手语视频流的识别有两种大的分类&#xff0c;一种是直接将视频输入进网络&#xff0c;一种是识别了关键点之后再进入网络。所以这篇文章我就要来讲讲如何用mediapipe对手语视频进行关键点标注。 代码 需要直接使用代码的&#xff0c;我就放这里了。环境自己配置一下吧&…