Vue 3 CLI TypeScript 项目搭建全攻略

news2024/12/27 0:41:35

一、前期准备

alt

在搭建 Vue 3 CLI TypeScript 项目之前,我们需要做好一系列的准备工作。

首先,Node.js 是必不可少的运行环境。Vue 3 CLI 要求 Node.js 的版本至少为 8.9 以上。您可以从Node.js 官方网站下载最新的长期支持(LTS)版本。安装完成后,您可以在终端通过输入 node -v 命令来确认安装是否成功并查看所安装的版本。

其次,对于 Vue CLI 的安装和更新,如果您之前尚未安装 Vue CLI,或者您安装的是旧版本(1.x 或 2.x),则需要先进行卸载。卸载命令为 npm uninstall vue-cli -g 或 yarn global remove vue-cli 。然后,您可以通过以下命令安装最新版本的 Vue CLI:npm install -g @vue/cli 。安装完成后,您可以通过 vue -V 命令来查看安装的版本,确保安装成功且版本符合项目需求。

做好这些前期准备工作,将为我们后续顺利搭建 Vue 3 CLI TypeScript 项目奠定坚实的基础。

二、项目创建步骤

(一)默认创建方式

使用默认选项创建项目相对较为简单直接。在终端输入 vue create 项目名称 命令后,系统会为您自动选择一系列预设的配置。但需要注意的是,默认配置可能无法完全满足您的特定需求,如果您的项目有特殊的要求,比如需要特定的 CSS 预处理器、路由模式、状态管理等,默认配置可能就不太适用。

(二)手动选择特性创建

当您选择手动选择特性创建项目时,将面临一系列的配置选项。首先是基础选项,如 Babel 用于转换 ES6 语法,TypeScript 为项目提供类型支持。Router 用于管理路由,能让页面之间的跳转更加清晰和可控。Vuex 用于状态管理,便于集中管理和共享应用中的状态数据。

对于 CSS Pre-processors ,您可以根据团队习惯和项目需求选择 Less、Sass 等预处理器。Linter/Formatter 用于代码规范和格式检查,保证代码的质量和一致性。

在选择是否使用 class-style component syntax 时,如果您更习惯使用类的方式来组织组件,建议选择开启。对于 Use Babel alongside TypeScript ,通常建议选择开启,以便更好地处理类型转换。

在路由模式选择上,如果您希望 URL 看起来更简洁美观,可选择 Use history mode for router ,但要注意在生产环境中需进行相应的服务器配置。

对于 CSS 预处理器的选择,应根据项目的样式需求和团队成员的熟悉程度来决定。而在选择代码检查工具和代码格式化时机时,需要考虑团队的开发习惯和项目的规范要求。

总之,手动选择特性创建项目时,需要综合考虑项目的具体需求和团队的技术偏好,做出最适合的配置选择。

三、项目配置与优化

(一)常用配置项详解

路由模式:常见的路由模式有 hash 模式和 history 模式。hash 模式通过 # 后面的部分来标识不同的页面,兼容性较好;history 模式则使 URL 看起来更加美观和直观,但需要服务器进行相应配置以避免 404 错误。

CSS 预处理器:Less 预处理器具有动态特性,允许在 CSS 中进行变量定义、函数编写和嵌套规则。而 Sass 则具有更强大的功能和丰富的语法。

代码检查工具:ESLint 可以通过配置规则来检查代码中的语法错误、潜在问题和风格不一致。例如,可以设置禁止使用未声明的变量、限制每行代码的长度等规则。

(二)代码规范与格式化

配置 ESLint :首先需要安装相关依赖,如 npm install eslint --save-dev 。然后创建 .eslintrc.js 文件来配置规则,如设置代码缩进、禁止使用特定的语法等。

Prettier 用于统一代码格式,安装后创建 .prettierrc 文件来配置格式选项,如缩进方式、行长度等。还可以在 package.json 中添加脚本,实现一次性格式化项目中的所有文件。

为了避免 ESLint 和 Prettier 的冲突,还需要安装一些插件并在 .eslintrc.js 中进行相应配置。

(三)UI 框架集成与优化

以 Element UI 为例,按需加载可以通过以下步骤实现:首先安装 Element UI ,然后在项目的入口文件(如 main.js )中按需引入所需的组件。还可以通过配置 babel-plugin-component 来进一步优化加载性能。

在配置优化方面,可以根据项目的具体需求定制主题,修改组件的默认样式,以达到与项目风格的完美融合。

四、项目搭建注意事项

(一)常见错误与解决

在 Vue 3 CLI TypeScript 项目搭建过程中,可能会遇到以下常见错误及解决方法:

  • 安装 CLI 插件出错:可能会出现 Installing CLI plugins. This might take a while... 这样的报错。解决方法包括降低 npm 版本、清空 npm 缓存、卸载相关包后重新安装等。
  • 组件 props 报错对象可能为空:在组件的根节点增加 v-if 不为空判断来解决。
  • api.now is not a function 错误:通常和 vue devtools 有关系,重新禁用启用,或者重新安装来解决。
  • 组件名称不符合规范:要求组件名称以驼峰格式命名。但实际开发时,一般页面组件我们以 index 命名,组件才以驼峰格式命名。在 .eslintrc.cjs 文件中,增加 vue/multi-word-component-name 配置来解决。

(二)兼容性处理

为了处理不同浏览器和环境的兼容性问题,我们可以采取以下方案:

  • 使用 rem 代替 px :引入 lib-flexible 和 px2rem 自动转换 px 为 rem ,解决响应式问题。在 vue.config.js 中新增相应配置,设置合适的换算基数。
  • 进行 CSS reset :使用 normalize.css 或者自行编写一套重置方案,重置所有浏览器默认样式。
  • 使用 Polyfill :通过 JavaScript 模拟实现浏览器不支持的 API 或者标准 API,例如使用 pollyfill.js 或者 core-js 等库。
  • 进行 Feature detection :通过检测浏览器特性来判断是否支持某个功能,使用 Modernizr 或者自行编写脚本来实现。

(三)版本控制与代码提交

利用 git 钩子可以实现代码校验和规范提交。首先,在安装 @vue/cli-service 之后,会安装 yorkie ,它能让我们在 package.json 的 gitHooks 字段中方便地指定 Git hook。例如:


{"gitHooks":{"pre-commit":"lint-staged"},"lint-staged":{"*.{js,vue}":["vue-cli-service lint","git add"]}}

注意,lint-staged 需要安装,否则会报找不到命令。在 commit 时有警告提示某些任务使用了 git add 命令,建议将其删除,因为 lint-staged 会将格式化后的代码自动添加到当前 commit 中。

如果使用 husky ,可以自动安装配置 lint-staged 和 husky ,修改 package.json 中的相关配置。在代码提交前,还可以进行分支合并前的代码审查,使用流行的代码审查工具如 GitHub 的 Code Review 等,提高代码质量。规范 commit 的信息,使用简洁明了的格式,方便跟踪和管理代码。

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

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

相关文章

数字芯片设计验证经验分享系列文章(第四部分):将ASIC IP核移植到FPGA上——如何测试IP核的功能和考虑纯电路以外的其他因素

作者:Philipp Jacobsohn,SmartDV首席应用工程师 Sunil Kumar,SmartDV FPGA设计总监 本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用I…

Python中类型转换函数1

1 bool()函数 bool()函数的作用是将给定参数转换为布尔类型,指定参数是非零值,则转换为True,否则转换为False,如图1所示。 图1 bool()函数的使用方法1 如果bool()函数没有参数,则返回值是False,如图2所示…

如何查看 Kubernetes 的操作审计日志?

极狐GitLab 通过 Kubernetes Agent 对 Kubernetes 集群进行管理。整体的步骤为 Kubernetes Agent 的注册、安装。当然,也可以直接对 Agent 进行删除。不管是添加还是删除,后台都会有对应的审计日志,方便对 Kubernetes 集群的操作进行安全审计…

金九银十面试丨Python自动化测试的面试真题:

1.请解释一下Python自动化测试是什么以及为什么它重要? Python自动化测试是指使用Python编程语言进行测试过程中的自动化的过程。它通过编写测试脚本和自动化工具来模拟用户的行为,执行测试用例,并能够自动捕获测试结果和生成测试报告。Pyth…

Qt QLineEdit输入内容的格式限制(2)

设置QlineEdit控件不可编辑、密文输入、输入格式等小技巧 1. 设置不可编辑 setReadOnly(false);//文本不可编辑,但可以复制到剪切板 setEnabled(false);//整个控件被禁用,且会调用控件的禁用状态 setFocusPolicy(Qt::NoFocus);//无法获得焦点&#xff…

什么是密码学?

什么是密码学? 密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。此信息可以处于静态(例如硬盘驱动器上的文件)、传输中(例如两方或多方之间交换的电子通信)或使用中(在对数据进行计算时&#…

第二十五课,字符串操作函数(二)

一,字符串.replace(子串1, 子串2):将字符串内的全部子串1,替换为子串2 在用电脑办公时,会出现这样的情景:一篇很长的文章中有一个人的名字全部被错写了,我们需要修改,但一个一个找错掉的名字修…

教师节素材大分享,海报设计不求人,素材多到根本用不完!

设计教师节海报时,设计师们最怕的就是时间不够用,灵感还卡壳。想做出有创意的设计,却总找不到合适的素材。而且,抠图、调色这些繁琐的步骤,特别耗时,让人头疼。还好最近找到一款国产设计软件,简…

SoftMaker Office Pro 2024:高效办公的全方位解决方案

SoftMaker Office Pro 2024是一款集高效、专业、全面于一体的办公软件套件,专为满足现代办公需求而设计。这款套件不仅包含了文字处理、电子表格、演示文稿等核心功能,还集成了项目管理、文档管理和客户管理等实用工具,为用户提供了全方位的办…

Leetcode 77. 组合 组合型回溯 C++实现

Leetcode 77. 组合 问题:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 算法: 创建二维返回数组 ans ,和临时数组 path 。 进入 dfs 函数,d 代表还需要选 d 个数字…

Qt QComboBox下拉菜单显示提示信息

亲测有效 void MainWindow::initCOmboBox() {QStandardItemModel *model new QStandardItemModel(this);QStandardItem *item;item new QStandardItem("1.00");item->setToolTip("黏性土");model->appendRow(item);item new QStandardItem("…

《软件工程导论》(第6版)第1章 软件工程学概述 复习笔记

第1章 软件工程学概述 一、软件危机 1.软件危机的介绍 (1)概念 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是不能运行的软件才具有的,实际上,几乎所有的软件都不同程度…

OpenAI GPT-3.5 “prompt“ argument not working

题意:"OpenAI GPT-3.5 的 prompt 参数不起作用" 问题背景: I am trying to make a flutter app with the openAI api that works like a chatbot, and I want to add a prompt so that the responses are more specialized, like in the open…

【系统架构师软考】计算机体系结构(二)

目录 CPU、GPU、NPU、FPGA、ASIC特性对比 SoC Cache的地址映像方法 直接映射(Direct Mapping) 2. 全相联映射(Fully Associative Mapping) 3. 组相联映射(Set-Associative Mapping) Cache的替换算…

刚刚!EI数据库再次更新!89本被踢,上百种期刊迎来变动

【SciencePub学术】本期热点 EI目录更新 刚刚,爱思唯尔更新了EI Compendex收录期刊目录。时隔近9个月,EI数据库才迎来了再次更新! 此次更新后,目前在检连续出版/核心收录(SERIALS)列表共收录期刊名称5644本…

KTH5701 系列低功耗、高精度 3D 霍尔传感器

KTH5701 是一款数字输出的 3D 霍尔芯片,内部 分别集成了 X 轴、 Y 轴和 Z 轴三个独立的霍尔传感器。 信号链采用高精度运放通过 16 bit ADC 将模拟信号 转换成数字输出。外部主机可以采用 SPI 或 I2C 两种 模式读出测量数据。此外,在芯片…

大模型书籍推荐丨不会大模型私有化部署?这本大模型权威教材必看!(附PDF文档)

《ChatGLM3大模型本地化部署、应用开发与微调》作为《PyTorch 2.0深度学习从零开始学》的姊妹篇,专注于大模型的本地化部署、应用开发以及微调等。 本书不仅系统地阐述了深度学习大模型的核心理论,更注重实践应用,通过丰富的案例和场景&…

Gartner首次发布AI代码助手魔力象限,阿里云进入挑战者象限,通义灵码产品能力全面领先

8月29日消息,国际市场研究机构Gartner发布业界首个AI代码助手魔力象限,全球共12家企业入围,阿里云成为唯一进入挑战者象限的中国科技公司。通义灵码在产品功能和市场应用等方面表现优秀,获得权威机构认可。 该报告从技术创新性、产…

【C++类和对象】类和对象的介绍、this指针以及体会面向对象编程

文章目录 🚀类✈️类的介绍✈️类的访问限定符✈️类的封装 🚀面向对象编程🚀类与对象的联系🚀this指针✈️引出this指针✈️this指针的特性 🚀类 ✈️类的介绍 在C语言中,结构体中仅能声明变量并不能定义…

QT学习ubuntu qt + desktop

环境搭建 ubuntu 安装QT 遇到kit 选择不了 通过sudo apt-get install qt5-default去安装SDK的时候报错: Package qt5-default is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is …