什么年代了,你还在手动配置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 IDE 前端开发
如何在大型代码仓库中删掉废弃的文件和 exports?
本文是我最近在公司内部写的废弃代码删除工具的一篇思考总结。
|
8月前
|
JavaScript 前端开发 安全
VITE+TS项目中别名需要分别设置避免冲突
VITE+TS项目中别名需要分别设置避免冲突
260 1
|
8月前
|
JavaScript IDE 编译器
TypeScript中模块路径解析与配置:深入剖析与最佳实践
【4月更文挑战第23天】本文深入探讨了TypeScript中模块路径解析的原理与配置优化,包括相对路径、Node.js模块解析和路径别名。通过配置`baseUrl`、`paths`、`rootDirs`以及避免裸模块名,可以提升开发效率和代码质量。建议使用路径别名增强代码可读性,保持路径结构一致性,并利用IDE插件辅助开发。正确配置能有效降低维护成本,构建高效可维护的代码库。
|
JavaScript
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
vue3 vite配置@根路径---解决:找不到模块“./xx/xxx.vue”或其相应的类型声明
2348 0
|
前端开发 小程序 PHP
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。 大概有两种方式: 1:框架目录下引入(不推荐) 在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php 在autoload.php文件中引入。 这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。 2:在app目录下引入 在bootstrap目录下新建常量文件
79 0
【vite】vite项目配置src目录路径别名
【vite】vite项目配置src目录路径别名
713 0
|
JavaScript
vue项目引入路径前面的@符号是什么?(简化路径)
vue项目引入路径前面的@符号是什么?(简化路径)
|
缓存 JavaScript 前端开发
Vue 新增不参与打包的接口地址配置文件
Vue 新增不参与打包的接口地址配置文件
223 0
|
JavaScript 安全 前端开发
vue打包以后,如何配置文件修改全局接口地址
vue打包以后,如何配置文件修改全局接口地址
vue打包以后,如何配置文件修改全局接口地址
|
资源调度 前端开发 JavaScript
React默认工程的目录说明
React默认工程的目录说明
React默认工程的目录说明

热门文章

最新文章