什么年代了,你还在手动配置vite路径别名?

简介: 【8月更文挑战第3天】Vite路径别名配置,简化项目引入

什么是路径别名

vite项目中,当我们引入某一个文件时,路径是相对于当前页面的,有时写起来会非常麻烦

import myIcon from "../../../common/assets/icon/logo.svg"

聪明的人可能会用路径别名配置!

使用路径别名配置,可以非常优雅的引入某个资源

// 引入
import myIcon from "@/logo.svg"

当然,我们先要在vite.config.js中进行配置

// vite.config.js
import path from "path"
import {
    defineConfig } from "vite";
export default defineConfig({
   
  resolve: {
   
    alias: {
   
      '@': path.resolve(__dirname, './src/common/assets/icon'),
    }
  }
});

vite中,使用resolve.alias进行路径别名配置。

resolve.alias

官网文档:https://cn.vitejs.dev/config/shared-options.html#resolve-alias

这个配置实际会作为rollup插件@rollup/plugin-aliasentries 的选项。必须使用绝对路径进行配置!

想要使用路径别名,我们需要先在vite.config.js中配置,如果我们的alias中配置了如下代码

// vite.config.js
import path from "path"
import {
    defineConfig } from "vite";
export default defineConfig({
   
  resolve: {
   
    alias: {
   
      '@': path.resolve(__dirname, './src'),
    }
  }
});

那么,我们代码中的@符号就代表的是/src,代码中的引入

import myIcon from "@/common/assets/icon/logo.svg"

实际就是

import myIcon from "/src/common/assets/icon/logo.svg"

现在,我们在任意一个文件里,输入@代表src文件夹

但,这依旧有一点点不方便。

比如上述的例子,我们输完@符号,还要继续输入/common/assets/icon才能找到文件。

目前来看,想要直接输入@/logo.svg找到文件,只能在vite.config.js增加配置了

// vite.config.js
import path from "path"
import {
    defineConfig } from "vite";
export default defineConfig({
   
  resolve: {
   
    alias: {
   
      '@': path.resolve(__dirname, './src/common/assets/icon'),
      '@': path.resolve(__dirname, './src'),
    }
  }
});

这样太麻烦了,我们有更好的解决办法!我们可以使用vite-aliases插件帮助我们简化这个过程!

vite-aliases的使用与原理

主要作用

vite-aliases可以帮助我们自动生成别名:检测你当前目录下包括src在内的所有文件夹, 并帮助我们去生成别名

{
   
    "@": "/**/src",
    "@aseets": "/**/src/assets",
    "@components": "/**/src/components",
}

使用

安装

npm i vite-aliases -D

添加到vite.config.js

// vite.config.js
import {
    ViteAliases } from 'vite-aliases'

export default {
   
    plugins: [
        ViteAliases()
    ]
};

此时,无需配置resolve.alias在项目中即可使用@路径别名。

原理

Vite-aliases其实是抢在vite执行配置文件之前去改写配置文件

通过vite.config.js 返回出去的配置对象以及我们在插件的config生命周期中返回的对象都不是最终的一个配置对象,vite会把这几个配置对象进行一个merge合并 {...defaultConfig, . ..specifyConfig}

Vite-aliases实际就是帮我导出了一个默认的resolve.alias配置,最终和vite.config.js内的配置进行合并。

相关文章
|
JavaScript 前端开发 安全
VITE+TS项目中别名需要分别设置避免冲突
VITE+TS项目中别名需要分别设置避免冲突
555 1
|
9月前
|
JavaScript 开发工具 git
工程化:Commitlint / 规范化Git提交消息格式
通过这些思维导图和分析说明表,您可以更加直观地理解Commitlint的安装、配置和使用方法,从而有效规范Git提交消息,提升团队协作效率和代码质量。
729 9
|
前端开发 JavaScript
vite中css最佳实践:使用postcss完善项目中的css配置
【8月更文挑战第3天】使用postcss完善项目中的css配置
2975 1
|
11月前
|
资源调度 前端开发 JavaScript
React中classnames库使用
【10月更文挑战第7天】
|
JavaScript
Vue3基础(19)___vite.config.js中配置路径别名
本文介绍了如何在Vue 3的Vite配置文件`vite.config.js`中设置路径别名,以及如何在页面中使用这些别名导入模块。
536 0
Vue3基础(19)___vite.config.js中配置路径别名
|
JSON 前端开发 JavaScript
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
该文章提供了Webpack的基础入门指南,涵盖安装配置、基本使用、加载器(Loaders)、插件(Plugins)的应用,以及如何通过Webpack优化前端项目的打包构建流程。
不会webpack的前端可能是捡来的,万字总结webpack的超入门核心知识
|
JavaScript 前端开发 开发者
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
|
前端开发 C++
使用 Vite 创建 React+TS+SW 项目并整合 AntDesign 、Scss 等组件或插件
本文记录了如何使用Vite创建一个React+TypeScript+Service Workers(SW)项目,并整合AntDesign组件库和Scss等插件,包括项目的创建、配置问题解决、AntDesign和Scss的整合方法。
820 1
|
JavaScript
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
3779 0
|
JSON 前端开发 JavaScript
使用vite搭建一个React项目!真香!
【8月更文挑战第13天】使用vite搭建一个React项目!真香!
2107 3
使用vite搭建一个React项目!真香!