当前位置: 首页 > news >正文

Vite 项目的核心配置- vite.config.ts 和 tsconfig.json 全解析


一、vite.config.ts 详细说明


vite.config.ts 是 Vite 项目的核心配置文件。它允许你自定义 Vite 的行为,以适应你的项目需求。

让我们来看看其中一些重要的配置选项:

import { fileURLToPath, URL } from 'node:url'// 使用 defineConfig 帮手函数,这样不用 jsdoc 注解也可以获取类型提示
import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'// 此处引用了path路径导向
import path from "path"export default defineConfig({// 查看 插件 API 获取 Vite 插件的更多细节 https://www.vitejs.net/guide/api-plugin.htmlplugins: [vue(), vueJsx()],// 在生产中服务时的基本路径base: './',// 配置别名绝对路径  https://webpack.js.org/configuration/resolve/resolve: {// resolve.alias: 更轻松地为import或require某些模块创建别名alias: {// '@': fileURLToPath(new URL('./src', import.meta.url)),// 如果报错__dirname找不到,需要安装node,执行npm install @types/node --save-dev// 例如:可以使用 '@' 来代替 'src' 目录"@": path.resolve(__dirname, "./src"),"@assets": path.resolve(__dirname, "./src/assets"),"@components": path.resolve(__dirname, "./src/components"),"@views": path.resolve(__dirname, "./src/views"),"@store": path.resolve(__dirname, "./src/stores"),}},// css预处理器css: {preprocessorOptions: {// 引入 var.scss 这样就可以在全局中使用 var.scss中预定义的变量了// 给导入的路径最后加上 ;scss: {additionalData: '@import "@/assets/styles/global.scss";',},},},// 定义构建选项,构建输出将放在其中,如果目录存在,它将在构建之前被删除// 指定输出目录为 'dist',并使用 Terser 进行代码压缩build: {outDir: 'dist',minify: 'terser'},server: {https: false, // 是否开启 httpsopen: true, // 是否自动在浏览器中打开port: 8001, // 端口号host: "0.0.0.0",// 跨域代理proxy: {'/api': {target: "http://localhost:3000",  // 后台接口changeOrigin: true,// secure: false, // 如果是https接口,需要配置这个参数// ws: true, //websocket支持// 截取api,并用api代替// rewrite: (path) => path.replace(/^\/api/, "/api"),}},hmr: {overlay: false, // 屏蔽服务器报错},},// 引入第三方的配置optimizeDeps: {include: [],}})

二、tsconfig.json 详细说明


tsconfig.json 是 TypeScript 的配置文件,它告诉 TypeScript 编译器如何处理你的代码。

以下是一个典型的配置:

"compilerOptions": {//设置基本路径和路径映射,与 vite.config.ts 中的别名配置相对应。"baseUrl": ".",   // 工作根目录"paths": {  "@/*": ["./src/*"],"@assets/*": ["src/assets/*"],"@components/*": ["src/components/*"],"@views/*": ["src/views/*"],"@store/*": ["src/stores/*"],},"lib": [// 编译过程中需要引入的库文件的列表"es5","es2015","es2016","es2017","es2018","esnext","dom","dom.iterable","scripthost"],// 指定一个匹配列表(属于自动指定该路径下的所有ts相关文件)"include": ["src/**/*.ts","src/**/*.tsx","src/**/*.vue"],"exclude": ["node_modules","src/assets/json/*.json","src/assets/css/*.scss"],"allowUnreachableCode": true, // 不报告执行不到的代码错误。"allowUnusedLabels": false,	// 不报告未使用的标签错误"alwaysStrict": false, // 以严格模式解析并为每个源文件生成 "use strict"语句"experimentalDecorators": true, // 启用实验性的ES装饰器"noImplicitAny": false, // 是否默认禁用 any"removeComments": true, // 是否移除注释"target": "esnext",// 指定 ECMAScript 目标版本"module": "esnext", // "commonjs" 指定生成哪个模块系统代码"strict": true, // 启用所有严格类型检查选项"jsx": "preserve",  // 在 .tsx文件里支持JSX"importHelpers": true,"moduleResolution": "node","skipLibCheck": true,"esModuleInterop": true,"allowSyntheticDefaultImports": true,"suppressImplicitAnyIndexErrors": true,"sourceMap": true,  // 是否生成map文件"declaration": true, // 是否自动创建类型声明文件"declarationDir": "./lib", // 类型声明文件的输出目录"allowJs": true, // 允许编译javascript文件。//指定引入的类型声明文件,默认是自动引入所有声明文件,一旦指定该选项,则会禁用自动引入,改为只引入指定的类型声明文件,如果指定空数组[]则不引用任何文件"types": ["webpack-env","node"],},"references": [{"path": "./tsconfig.config.json"}]

这些配置让 TypeScript 能够更好地理解和检查你的代码,提供更强大的类型推断和错误检测。


实用建议:

1、根据项目需求调整 vite.config.ts

  • 如果需要处理其他文件类型,可以添加相应的插件。

  • 调整 server 配置以满足开发需求。

  • 根据部署环境调整 build 配置。

2、优化 tsconfig.json

  • 根据项目的复杂度调整 strict 模式。

  • 如果使用新的 JavaScript 特性,记得在 lib 中添加相应的库。

  • 根据项目结构调整 include 和 exclude。

3、保持一致性
确保 vite.config.ts 和 tsconfig.json 中的路径别名配置保持一致。

4、定期更新
随着 Vite 和 TypeScript 的更新,定期检查并更新这些配置文件,以获得最新的功能和性能改进。


三、结语:


掌握 vite.config.ts 和 tsconfig.json 的配置,可以让你的 Vite 项目如虎添翼。它们就像是项目的"控制中心",通过合理配置,你可以显著提升开发效率和代码质量。记住,配置是一个逐步优化的过程,随着项目的发展,你可能需要不断调整这些配置。保持学习和探索的态度,你会发现这些配置文件蕴含的强大力量!

相关文章:

Vite 项目的核心配置- vite.config.ts 和 tsconfig.json 全解析

一、vite.config.ts 详细说明 vite.config.ts 是 Vite 项目的核心配置文件。它允许你自定义 Vite 的行为,以适应你的项目需求。 让我们来看看其中一些重要的配置选项: import { fileURLToPath, URL } from node:url// 使用 defineConfig 帮手函数,这样不用 jsdoc …...

如何使用JMeter进行性能测试的保姆级教程

性能测试是确保网站在用户访问高峰时保持稳定和快速响应的关键环节。作为初学者,选择合适的工具尤为重要。JMeter 是一个强大的开源性能测试工具,可以帮助我们轻松模拟多用户场景,测试网站的稳定性与性能。本教程将引导你通过一个简单的登录场…...

Qt 实战(11)样式表 | 11.1、样式表简介

文章目录 一、样式表简介1、简介2、样式表语法2.1、样式规则2.2、选择器类型2.3、伪状态2.4、设置子控件状态 3、样式表继承与优先级3.1、样式表继承3.2、样式表优先级3.3、解决冲突3.4、样式表层叠 4、总结 前言: 在开发图形用户界面(GUI)应…...

WebGl 多缓冲区和数据偏移

1.多缓冲区 多缓冲区技术通常涉及到创建多个缓冲区对象,并将它们用于不同的数据集。这种做法可以提高数据处理效率,尤其是在处理大量数据或需要频繁更新数据时。通过预先分配和配置多个缓冲区,可以在不影响渲染性能的情况下,快速…...

基于SSM的甜品店销售管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...

Spacetime Gaussian Feature Splatting for Real-Time Dynamic View Synthesis

Spacetime Gaussian Feature Splatting for Real-Time Dynamic View Synthesis 摘要 动态场景的新视角合成一直是一个引人入胜但充满挑战的问题。尽管最近取得了很多进展,但如何同时实现高分辨率的真实感渲染、实时渲染和紧凑的存储,依然是一个巨大的…...

PCL 基于FPFH特征描述子获取点云对应关系

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 FPFH特征计算函数 2.1.2 获取点云之间的对应点对函数 2.1.3 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总…...

项目实战:Qt+OpenCV仿射变换工具v1.1.0(支持打开图片、输出棋盘角点、调整偏移点、导出变换后的图等等)

若该文为原创文章,转载请注明出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/143105881 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、Op…...

OpenCV坐标系统与图像处理案例

在图像处理中,理解图像的坐标系统是至关重要的。OpenCV,作为一个强大的计算机视觉库,提供了丰富的功能来操作图像。本文将介绍OpenCV中的坐标系统,并提供一个简单的案例来展示如何使用这些坐标来修改图像的特定区域。 OpenCV坐标…...

Unity之如何使用Unity Cloud Build云构建

文章目录 前言什么是 UnityCloudBuild?如何使用Unity云构建Unity 团队中的人员不属于 Unity Team 的人员UnityCloudBuild2.0价格表如何使用Unity云构建配置CloudBuild前言 Unity Cloud Build作为Unity平台的一项强大工具,它允许开发团队通过云端自动构建项目,节省了繁琐的手…...

Halcon开启多线程

并行运算(提升检测时间) 支持主线程中的子线程并行执行程序和调用算子。 一旦启动,子线程由线程 ID 标识,该线程 ID 是一个取决于操作系统的整数进程号。 子线程的执行独立于它们启动的线程。 因此,无法预测子线程执行…...

Echarts 点击事件无法使用 this 或者 this绑定的数据无法获取

这里写自定义目录标题 现象解决方案 现象 给echarts绑定自定义点击事件时,无法使用this,并且无法获取到this绑定的数据。 解决方案 增加:const _this this; 代码块如下: const _this this; let myChart echarts.init(docum…...

PCL 基于距离阈值去除错误对应关系(永久免费版)

目录 一、概述1.1 原理1.2 实现步骤1.3应用场景 二、关键函数2.1 获取初始点对2.2 基于距离的对应关系筛选函数2.3 可视化 三、完整代码四、结果展示 即日起,付费专栏所有内容将以永久免费形式陆续进行发表!!! 一、概述 在3D点云的…...

DirectX 11 和 Direct3D 11 的关系

以下是对两者的详细比较: DirectX 11 DirectX 11是微软的一项技术,为高性能游戏和复杂图形程序制定了标准。它是DirectX系列的一个版本,引入了多项创新功能,如硬件加速的Tessellation(细分曲面技术)、多线…...

什么是SCRM?为什么企业要做SCRM?

很多人都知道CRM是客户关系管理系统,而SCRM又是什么呢? 今天我就给大家用一文讲清SCRM的那些事,本文包括:SCRM 的定义与内涵,与传统 CRM 的区别;通过案例阐述其重要性及作用,如适应消费模式转变…...

类间方差,分割地物

类间方差(Inter-class Variance)是用于图像分割中的一种统计量,特别是在使用Otsu方法进行阈值选择时。它衡量的是分割后两个类别(通常是前景和背景)之间的分离程度。类间方差越大,说明两个类别之间的差异越…...

基于微博评论的自然语言处理情感分析

目录 一、项目概述 二、需要解决的问题 三、数据预处理 1、词汇表构建(vocab_creat.py) 2、数据集加载(load_dataset.py) 四、模型构建(TextRNN.py) 1、嵌入层(Embedding Layer&#xff…...

MFEM( Modular Finite Element Methods)是一个灵活的、可扩展的、开源的有限元库

MFEM( Modular Finite Element Methods )是一个灵活的、可扩展的、开源的有限元库,主要用于求解偏微分方程(PDE)问题。MFEM的目标是通过模块化设计和强大的抽象能力,简化有限元方法的使用,并支持高效的并行计算,尤其是在复杂的几何形状和自适应网格细化的情况下。 核…...

在VMware上创建虚拟机以及安装Linux操作系统,使用ssh进行远程连接VMware安装注意点 (包含 v1,v8两张网卡如果没有的解决办法)

一,VMware上创建虚拟机 1.VMware下载 1)点击VMware官网进入官网 网址:VMware by Broadcom - Cloud Computing for the EnterpriseOptimize cloud infrastructure with VMware for app platforms, private cloud, edge, networking, and security.https…...

关于vue3中如何实现多个v-model的自定义组件

实现自定义组件<User v-model"userInfo" v-model:gender"gender"></User> User组件中更改数据可以同步更改父组件中的数据&#xff1a; 1 父组件&#xff1a; <User v-model"userInfo" v-model:gender"gender">&…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...