什么年代了,你还在手动配置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-alias的entries 的选项。必须使用绝对路径进行配置!

想要使用路径别名,我们需要先在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内的配置进行合并。

相关文章
|
7月前
|
JavaScript 前端开发
如何在Vite创建的Vue项目中全局注入SCSS变量/混合器?
如何在Vite创建的Vue项目中全局注入SCSS变量/混合器?
861 158
Nuxt 3环境变量读取问题解决方案
自动暴露给客户端和服务端 普通的 process.env 变量只在构建时可用 .env 文件未正确加载: 确保你的 .env 文件在项目根目录 确认文件内容格式正确(API_BASE_URL=#) 运行环境问题: 确保你在运行项目前已经设置了环境变量 解决方案 修改环境变量命名: 在 .env 文件中: ``` NUXT_PUBLIC_API_BASE_URL=https://www.fglt.me/
802 17
|
JavaScript
Vue3基础(24)___vue3中使用vuex
本文介绍了在Vue 3中如何使用Vuex进行状态管理,包括安装Vuex、创建store、定义state、mutations、actions、getters,以及在组件中使用这些选项。同时,还介绍了如何通过`$store`在组件内部访问和修改状态,以及如何使用命名空间对模块进行隔离。
705 3
|
JavaScript 前端开发 安全
VITE+TS项目中别名需要分别设置避免冲突
VITE+TS项目中别名需要分别设置避免冲突
1001 1
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
3469 14
|
API
Vite 中环境变量的配置方法
【10月更文挑战第10天】 Vite 中环境变量的配置方法
1839 2
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
3333 0
|
JavaScript 前端开发 开发者
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
太爽了!这10个 Vite 插件,帮我在开发中节省了大量时间!!
|
前端开发 JavaScript 编译器
Vite中预处理器(如less)的配置
【8月更文挑战第2天】Vite中预处理器(如less)的配置
1881 4
|
前端开发 JavaScript
vite中css最佳实践:使用postcss完善项目中的css配置
【8月更文挑战第3天】使用postcss完善项目中的css配置
4267 1

热门文章

最新文章