使用Vite搭建vue3+TS项目的实现步骤

 更新时间:2023年01月11日 08:24:39   作者:喝西瓜汁的兔叽Yan  
本文主要介绍了使用Vite搭建vue3+TS项目的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

vite简介

vite 是一个基于 Vue3 单文件组件的非打包开发服务器,它具有快速的冷启动,不需要等待打包操作;并且官网说是下一代的前端构建工具。

初始化项目

npm init vite@latest

1.输入项目名称

在这里插入图片描述

2.选择Vue

在这里插入图片描述

3.选择TS

在这里插入图片描述

4.启动项目

在这里插入图片描述

5.项目启动成功

在这里插入图片描述

注意

用vscode进行开发的时候,推荐使用volar,禁用以前vue2常使用的插件Vetur。

修改vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

export default defineConfig({
  plugins: [vue()],
  //解决“vite use `--host` to expose”
  base: './',	//不加打包后白屏
  server: {             
    host: 'localhost',	
     port: 9527,      
    open: true
  },
  resolve:{   
    //别名配置,引用src路径下的东西可以通过@如:import Layout from '@/layout/index.vue'
    alias:[   
      {
        find:'@',
        replacement:resolve(__dirname,'src') 
      }
    ]
  }
})

安装ts依赖和ESLint

这个依赖就让TS认识到@根目录符号

1.TS依赖

npm install @types/node --save-dev

配置ts文件采用@方式导入
在tsconfig.json文件中添加配置(下图打注释的都是添加的,也可自己丰富,其中只打//的是@配置,其余是其他配置)

{
  "compilerOptions": {
    "target": "esnext",
    "useDefineForClassFields": true,
    "module": "esnext",
    "moduleResolution": "node",
    "strict": true,
    "jsx": "preserve",
    "sourceMap": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noImplicitAny": false,     //any报错
    "lib": ["esnext", "dom"],
    "suppressImplicitAnyIndexErrors": true,//允许字符串用作下标
    "skipLibCheck": true,
    
     "baseUrl": ".",			//
     "paths": {					//
      "@/*":[					//
        "src/*"					//
      ]							//
     }							//
     
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
  "references": [{ "path": "./tsconfig.node.json" }],
  
  "exclude":["node_modules"]		// // ts排除的文件

}

2.ESLint

npm install --save-dev eslint eslint-plugin-vue

在根目录创建.eslintrc.js文件
在rules可以添加自己的验证规则

module.exports = {
	root: true,
	parserOptions: {
		sourceType: 'module'
	},
	parser: 'vue-eslint-parser',
	extends: ['plugin:vue/vue3-essential', 'plugin:vue/vue3-strongly-recommended', 'plugin:vue/vue3-recommended'],
	env: {
		browser: true,
		node: true,
		es6: true
	},
	rules: {
		'no-console': 'off',
		'comma-dangle': [2, 'never'] //禁止使用拖尾逗号
	}
}

安装路由

npm install vue-router@4

1.src下创建router文件夹,新建index.ts

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import Layout from '../components/HelloWorld.vue'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'HelloWorld',
    component:()=>import('@/components/HelloWorld.vue'),
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

2.main.ts中导入挂载路由

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'

createApp(App).use(router).mount('#app')

3.修改App.vue路由出口

<script setup lang="ts">
</script>
<template>
  <router-view></router-view>
</template>

<style>

</style>

安装Axios

npm install axios 

1.新建utils–request.ts

// 首先先引入aixos
import axios from 'axios'
// 创建一个axios 实例
const service = axios.create({
    baseURL: "/api", // 基准地址
    timeout: 5000 // 超时时间
})
 
// 添加请求拦截器
service .interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});
 
// 添加响应拦截器
service .interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});
 
// 最后导出
export default service 

2.新建api文件夹,xxx.ts

import service from "@/utils/request"

//写对应的接口
export let getList=(params)=>{
	return service({
		url:"/getlist",
		method:"get",
		params
	})
}

//然后在对应的页面引入使用即可。

配置跨域

vite.config.ts

server: {
    proxy: {
      '/api': {
        target: 'https://baidu.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
 },

安装Less

npm install -D less less-loader

使用:

<style scoped lang="scss">
.read-the-docs {
  color: #888;
}
</style>

其他

我们还可以安装ElementUI-plus和状态管理Pinia,这些我们只需要去对应的官网有指导安装。

到此这篇关于使用Vite搭建vue3+TS项目的实现步骤的文章就介绍到这了,更多相关Vite搭建vue3+TS项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VUE递归树形实现多级列表

    VUE递归树形实现多级列表

    这篇文章主要为大家详细介绍了VUE递归树形实现多级列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Vite Vue3 EsLint Prettier配置步骤极简方法详解

    Vite Vue3 EsLint Prettier配置步骤极简方法详解

    这篇文章主要为大家介绍了Vite Vue3 EsLint Prettier配置步骤的极简方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • uniapp微信小程序axios库的封装及使用详细教程

    uniapp微信小程序axios库的封装及使用详细教程

    这篇文章主要给大家介绍了关于uniapp微信小程序axios库的封装及使用的相关资料,Axios是一个基于promise网络请求库,作用于node.js和浏览器中axios-miniprogram-adapteraxios的小程序适配器,需要的朋友可以参考下
    2023-08-08
  • 如何使用yarn创建vite项目+vue3

    如何使用yarn创建vite项目+vue3

    这篇文章主要介绍了如何使用yarn创建vite项目+vue3,详细介绍了使用vite创建vue3过程,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • vue使用mpegts.js的详细步骤记录

    vue使用mpegts.js的详细步骤记录

    MPEGTS.js是一个轻量级的JavaScript库,用于处理MPEG-TS流,这篇文章主要给大家介绍了关于vue使用mpegts.js的详细步骤记录,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • Vue实现动态创建和删除数据的方法

    Vue实现动态创建和删除数据的方法

    下面小编就为大家分享一篇Vue实现动态创建和删除数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue3中使用echarts的简单七个步骤(易懂,附紧急避坑)

    Vue3中使用echarts的简单七个步骤(易懂,附紧急避坑)

    近期在做一个vue3的项目,里面有个图表需求,因公司之前使用第三方封装的图表缺少文档,就去看了echars的官网文档,引入原生echars来实现,下面这篇文章主要给大家介绍了关于Vue3中使用echarts的简单七个步骤,需要的朋友可以参考下
    2023-01-01
  • vue 使用vant插件做tabs切换和无限加载功能的实现

    vue 使用vant插件做tabs切换和无限加载功能的实现

    这篇文章主要介绍了vue 使用vant插件做tabs切换和无限加载功能的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • VUEX采坑之路之获取不到$store的解决方法

    VUEX采坑之路之获取不到$store的解决方法

    今天小编就为大家分享一篇VUEX采坑之路之获取不到$store的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 使用Vue3和ApexCharts实现交互式3D折线图

    使用Vue3和ApexCharts实现交互式3D折线图

    ApexCharts 是一个功能强大的 JavaScript 库,用于创建交互式、可定制的图表,在 Vue.js 中,它可以通过 vue3-apexcharts 插件轻松集成,本文给大家介绍了使用Vue3和ApexCharts实现交互式3D折线图,需要的朋友可以参考下
    2024-06-06

最新评论