使用Vue3 + vite + TypeScript项目创建步骤

  • A+
所属分类:Web前端
摘要

如果已经全局安装过旧版本的vue-cli,先卸载。安装新版的@vue/cli备注:vite 是一个由原生ESM驱动的Web开发构建工具,打开 vite 依赖的 package.json 可以发现在 devDependencies 开发依赖里面已经引入了TypeScript ,甚至还有 vuex , vue-router , less , sass 这些本地开发经常需要用到的工具。vite 轻量,开箱即用的特点,满足了大部分开发场景的需求,作为快速启动本地 Vue项目来说,这是一个非常完美的工具。


项目搭建

vite

//yarn的下载vite方式 yarn create vite-app <projectName> //or //npm的下载vite方式 npm init vite-app <projectName>   //以上方式自行选择即可 

vue-cli

如果已经全局安装过旧版本的vue-cli,先卸载。

yarn global remove vue-cli //or npm uninstall vue-cli -g    

安装新版的@vue/cli

yarn global add @vue/cli //or npm install -g @vue/cli  //检查下vue版本号 vue -V  //创建项目 vue create <projectName> 

备注:

vite 是一个由原生ESM驱动的Web开发构建工具,打开 vite 依赖的 package.json 可以发现在 devDependencies 开发依赖里面已经引入了TypeScript ,甚至还有 vuex , vue-router , less , sass 这些本地开发经常需要用到的工具。vite 轻量,开箱即用的特点,满足了大部分开发场景的需求,作为快速启动本地 Vue项目来说,这是一个非常完美的工具

vue-cli搭建项目

vue3 的更新怎么能少得了 vue-cli 呢, vue-cli 更强调的是用 cli 的方式进行交互式的配置,选择起来更加灵活可控。丰富的官方插件适配,GUI的创建管理界面,标准化开发流程,这些都是 vue-cli 的特点。

使用Vue3 + vite + TypeScript项目创建步骤

选择 手动选择功能 Manually select features

使用Vue3 + vite + TypeScript项目创建步骤

备注: 想要预装什么,就手动check什么(即使前期忘记勾选,后期也可以加装)。

? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection) ( ) Babel //转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。  ( ) TypeScript// TypeScript是一个JavaScript(后缀.js)的超集(后缀.ts)包含并扩展了 JavaScript 的语法,需要被编译输出为 JavaScript在浏览器运行,目前较少人再用 ( ) Progressive Web App (PWA) Support// 渐进式Web应用程序 ( ) Router // vue-router(vue路由) ( ) Vuex // vuex(vue的状态管理模式) ( ) CSS Pre-processors // CSS 预处理器(如:less、sass) ( ) Linter / Formatter // 代码风格检查和格式化(如:ESlint) ( ) Unit Testing // 单元测试(unit tests) ( ) E2E Testing // e2e(end to end) 测试 

例如: 忘记使用选择 TypeScript 也没事,加一行cli命令就行了

vue add typescript 

最后,别忘了在 .vue 代码中,给 script 标签加上 lang=“ts”

<script lang="ts"> 

vite搭建项目(重点讲)

  1. 创建
yarn create vite-app <projectName> //or npm init vite-app <projectName>   //进入 cd projectName //安装依赖 yarn install  //启动 yarn dev  

访问:http://localhost:3000

使用Vue3 + vite + TypeScript项目创建步骤 使用Vue3 + vite + TypeScript项目创建步骤

上图可以看到新建的项目结构与vue-cli4创建的项目结构基本一样,都是App.vue和main.js

查看main.js文件内容

import { createApp } from 'vue' import App from './App.vue' import './index.css'  createApp(App).mount('#app') 

发现创建Vue的方式变了,原来是new Vue来初始化Vue,但在Vue3.0中,修改为了通过createApp的方式;
Vue3中文文档

配置项目

配置typescript

1、安装typescript

yarn add typescript -D 

2、初始化 tsconfig.json

//执行命令 初始化 tsconfig.json  npx tsc --init 

3、将main.js修改为main.ts

其他的引用也修改为main.ts,也需要将其他页面的 <script> 修改为 <script lang="ts">

4、配置 ts 识别vue文件,在项目根目录添加shim.d.ts文件
添加以下内容

declare module "*.vue" { import { Component } from "vue"; const component: Component; export default component; } 
配置Vue Router

Vue Router 4.0 ,变化请查看 Github 中完整的细节,
目前版本beta: v4.0.12, yarn 进行安装需要带上版本号
1、安装vuex

yarn add [email protected] // or yarn add vue-router@next 

2、安装完后配置vue-router
在项目src目录下面新建router目录,然后添加index.ts文件,添加以下内容

// import VueRouter from 'vue-router' import {createRouter, createWebHashHistory} from 'vue-router' const routes:any = [] // Vue-router新版本中,需要使用createRouter来创建路由 export default  createRouter({ // 指定路由的模式,此处使用的是hash模式 history: createWebHashHistory(), routes // short for `routes: routes` })  // const routes :any = [] // // 3. Create the router instance and pass the `routes` option // // You can pass in additional options here, but let's // // keep it simple for now. // const router = VueRouter.createRouter({ //   // 4. Provide the history implementation to use. We are using the hash history for simplicity here. //   history: VueRouter.createWebHashHistory(), //   routes, // short for `routes: routes` // }) 

3、将router引入到main.ts中,修改main.ts文件

import { createApp } from 'vue' import App from './App.vue' import './index.css' import router from './router/index'  // import router 后创建并挂载根实例。 const app = createApp(App) // 确保 t_use_  实例来创建router, 将路由插件安装到 app 中 app.use(router) app.mount('#app') // createApp(App).mount('#app') 

配置Vuex

Vuex 4.0 ,变化请查看Github
目前版本beta: v4.0.2
1、安装vuex

yarn add vuex@4 //或者 yarn add vuex@next 

2、安装完后配置vuex
在项目src目录下面新建store目录,并添加index.ts文件,添加以下内容

import { createStore } from 'vuex'  interface State {     userName: string } export default createStore({     state(): State {         return {             userName: "vuex",         };     }, }); 

配置Ant Design Vue

具体使用方式请参考:官方文档
1、引入ant-design-vue

yarn add ant-design-vue@next 

2、在main.ts中引入

import { createApp } from 'vue' import App from './App.vue' import './index.css' import AntDesignVue from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; import router from './router/index' import store from './store/index'  // import router 后创建并挂载根实例。 const app = createApp(App) // 确保 t_use_  实例来创建router // 整个应用程序路由器感知。 app.use(router) app.use(store) app.use(AntDesignVue) app.mount('#app') // createApp(App).mount('#app')