如何搭建一个完整的Vue3.0 + ts 的项目
如何搭建一个完整的Vue3.0 + ts 的项目
相信9月18日尤大大的关于Vue3.0的发表演讲大家一定有所关注,现在Vue3.0 也已经进入RC阶段(最终产品的候选版本,如果没有问题则可发布成为正式版本)。所以Vue3.0的学习是我们必然的趋势,今天,主要分享一下Vue3.0的详细搭建过程,希望可以为初入Vue3的小伙伴有所帮助。
我们现在开始进入今天的主题啦~~
一、安装
1. 安装nodejs
此处提供nodejs下载地址:https://nodejs.org/zh-cn/download/
- 大家根据自己电脑的配置选择适配的
LTS(最新稳定版本
进行下载,安装即可,此处略去安装步骤。
2.卸载旧版本
如果你现在正在用旧版的
Vue-cli1.x
或者Vue-cli2.x
需要先进行卸载;如果没有,请忽略此步骤
- 打开命令窗口,用以下命令进行卸载:
npm uninstall vue-cli -g
复制代码
3.安装Vue-cli 3.x
- 搭建Vue3.0的项目,必须依赖
Vue-cli 3.0
或者以上的版本,打开命令窗口,通过以下命令进行安装和查看版本号:
// 安装最新版的vue-cli
npm install -g @vue/cli
// 查看版本号
vue -V
复制代码
二、项目搭建过程
1.新建项目,以下我新建一个名称为my-demo的项目
vue create my-demo
复制代码
2.enter之后,根据项目提示,接下来会让你选择一个预设:
newTs : 在项目创建完成的最后,会询问你需不需要保持本次配置,方便下次直接使用;这个newTs就是我之前保存好的一个预设配置
Default:默认的预设配置,会快速构建一个项目,提供了babel和eslint的支持
Manually select features:手动进行项目配置,可以根据项目的需要选择合适的依赖,具备更多的选择性,以下步骤,我将会采用该种方式。
复制代码
3. Vue-cli3.x 将提供以下特性供选择,大家可以根据项目需要进行选择添加的配置项:
通过上下键进行配置项切换,对需要选择的配置项使用空格键进行选中/反选
Babel:使用babel,便于将我们源代码进行转码(把es6=>es5)
TypeScript:使用TypeScript进行源码编写,使用ts可以编写强类型js,对我们的开发有很大的好处
Progressive Web App(PWA):使用渐进式网页应用(PWA)
Router:使用vue-router
Vuex:使用vuex状态管理器
CSS Pre-processors:使用CSS预处理器,比如:less,sass等
Linter/Formatter:使用代码风格检查和格式化
Unit Testing:使用单元测试
E2E Testing:使用E2E测试, end to end(端到端)是黑盒测试的一种
复制代码
4.然后对每个选中的配置项进行配置
- Use class-style component syntax? (Y/n)
是否使用Class(类)风格装饰器, 即通过export default class Home extends Vue{} 创建Vue实例
- Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? (Y/n)
使用Babel做转义, 与TypeScript一起用于自动检测
- Use history mode for router?
路由模式, 是否选择history模式,启用history模式,项目build之后,可能会出现打开页面空白的情况哦
- Pick a CSS pre-processor?
选择一种css 预处理器, 在这里我选择less
- Pick a linter / formatter config?
选择一种代码格式化检测工具
TSLint: ts格式检验工具
ESLint with error prevention only: ESLint 只会进行错误提醒
ESLint + Airbnb config: ESLint Airbnb标准
ESLint + Standard config: ESLint Standard 标准
ESLint + Prettier: ESLint(代码质量检测)+ Prettier(代码格式化工具)
复制代码
- Pick additional lint features?
代码检查方式: 保存时检查 or 提交时检查; 我选择, 保存时检查
- Pick a unit testing solution?
选择一种单元测试的方案,目前Vue官方推荐也是jest, 相比而言, 配置简单容易上手, 建议选择Jest啦
- Where do you prefer placing config for Babel, PostCSS, ESLint, etc.?
Babel, PostCSS, ESLin等配置文件怎么存放, 是放到单独的配置文件中?还是package.json里? 这里方便配置清晰好看, 我选择每个配置单独文件。
- Save this as a preset for future projects?
是否需要保存当前配置,在以后的项目中可快速构建? 保存后, 后续创建项目时可以直接选择该配置, 不需单独配置
5.配置完成后,等待依赖安装完成
6.构建完成后,项目目录结构如下
相比Vue2.x, Vue3.0的目录确实精简了很多, 而且我们会发现, Vue3.0不在有webpack.config.js的配置, 是因为Vue3.0 通过插件@vue/cli-service对webpack进行抽象处理, 并默认了webpack的配置。但是项目开发中,我们肯定会存在一些特殊的需求需要调整webpack, 当然这也是没有问题, 在Vue3.0当中, 可以通过在项目的根目录创建vue.config.js对webpack进行自定义配置。
关于vue.config.js 的配置我会单独写一篇文章进行分享
三、启动项目:
cd my-demo
npm run serve
复制代码
至此,Vue3.0完整的项目搭建过程就完成,后面我会单独分享Vue3.0中vue.config.js 的配置; 文章中有错误的地方,欢迎提出指正,感谢大家
如何搭建一个完整的Vue3.0 + ts 的项目相关推荐
- 如何开发和搭建一个优质的Web3.0/区块链项目?
在区块链世界和加密领域中.Web3绝对算得上是一个耀眼的明星了,现在的风头明显盖过前两位老大哥了. 相信许多人也都想尝试熟悉或者参与区块链,加密领域和Wed3之中,今天我们就来谈谈如何以软件开发的角度 ...
- vue3.0+ts+element-plus多页签应用模板:项目搭建
目录 系列文章 一.安装vue-cli@4.5.x 二.创建项目 三.项目配置 四.IDE配置 五.vue.config.js配置 六.重置浏览器默认样式 系列文章 vue3.0+ts+element ...
- 【React进阶-1】从0搭建一个完整的React项目(入门篇)
这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶.万字长文,请各位有足够的时间时再来阅读和学习. 概述 平时工作中一直在用React提供的脚手架工具搭建React项目, ...
- react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)
react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redu ...
- vue3.0+ts+element-plus多页签应用模板:element-plus按需引入与动态换肤
目录 系列链接 一.安装element-plus 二.按需引入 1. 为什么要按需引入? 2. 如何按需引入? 3. 验证是否引入成功 三.动态换肤 1. 制作自定义主题 2. 引入自定义主题 3. ...
- vue3.0+ts+element-plus多页签应用模板:侧边导航菜单(上)
目录 系列文章 一.先说点什么 二.从问题开始,侧边栏是干啥的? 三.封装组件之思路分析 四.封装菜单部分 1. MenuItem 2. ModuleMenu 系列文章 vue3.0+ts+eleme ...
- vue3.0+ts+element-plus多页签应用模板:多级路由缓存
目录 系列文章 一.先说点啥 1. 为啥需要路由缓存? 2. 怎么实现路由缓存? 二.路由扁平化 三.定义tag模块处理路由缓存 四.切换路由时加入缓存 五.使用keep-alive 系列文章 vue ...
- 线上redis一般安在linux_Redis企业级应用-Linux安装搭建一个完整的linxu线上服务(上)...
我们在做项目的时候经常会遇到很多性能的问题,也成为整个系统优化最疼痛的问题,主要还是因为在用户量大的时候或者就是说高并发访问的时候,我们系统的数据库会有一个限制.当然也可以通过对数据库的优化对系统进行 ...
- 利用vue-cli配合vue-router搭建一个完整的spa流程
好文章备忘录: 转自:https://segmentfault.com/a/1190000009160934?_ea=1849098 demo源码:https://github.com/1590123 ...
最新文章
- Python 自动化办公之 Excel 对比工具
- arm下如何烧写指定分区大小的内核和文件系统
- raid操作相关命令笔记
- 秒杀多线程第七篇 经典线程同步 互斥量Mutex
- android 搜索工具栏,Android记事本在菜单栏添加搜索按钮方法
- php注册树模式,PHP设计模式之详记注册树模式
- 你和高级开发的距离,可能还缺这个技术框架……
- Linux 进程信号详细总结
- Python windows serial
- 打开和禁用IPV6的方法
- java写入excel乱码_Java导出Excel解决乱码及导出文件打开不可读需修复的问题
- 数据挖掘工程师笔试及答案整理
- vscode设置豆沙绿护眼色
- 安卓开发 监听虚拟按键_Android 虚拟按键适配动态调整布局的方法
- Android开发之视频播放器
- 个人总结之前端技巧-----页面的设计流程
- Swagger接口测试工具。
- python安装h5py
- 文件、目录管理(一)
- Suomi NPP VIIRS夜间灯光遥感数据简介与下载(一)——数据介绍,FTP下载与hdf5读取
热门文章
- 左右xcode的重构选项的一些理解
- 教你在Ubuntu上体验Mac风格
- AbstractEndpoint 和 ProtocolHandler
- Xml中SelectSingleNode方法中的xpath用法
- 《Spring Recipes》第二章笔记:Creating Beans by Invokin...
- Angular项目目录介绍
- element表格实现树形全选_很实用!word中全选的快捷键介绍及使用方法
- mysql压力写入测试_mysql压力测试工具
- 面向多媒体 linux 版本,基于MX Linux 的 AV Linux 新版发布,此AV非彼AV
- java map class_Java:声明一个包含两个相关泛型类型的Map(Map,Class ?extends ClassB )...