Home Web Front-end JS Tutorial How to Setup Path Alias Vite + React

How to Setup Path Alias Vite + React

Jul 28, 2024 am 02:48 AM

How to Setup Path Alias Vite + React

Why Path Aliases?

Path Aliases in Vite allow us to use custom paths to our project directory when importing our modules.
⁠Say we are working on a React project, in our cards component we want to import about three different components to build our card. Let's say a button, header, image.

We can write it as this

import Button from '../../components/Button'
import Header from '../../components/ui/Header'
import Image from '../../components/Image'
Copy after login


It looks good for now, but think of when we want to refactor or improve our component and have to import about 5 or 6 more components. Then it starts to get messy.

import Button from '../../components/Button'
import Header from '../../components/ui/Header'
import Image from '../../components/Image'
import Panel from "../../components/Dashboard/Panel";
import Input from "../../components/Forms/Input";
import Submit from "../../components/Forms/Submit"

Copy after login

That's where path imports become useful, they make our import statements cleaner and more manageable. With Path Alias what we have above becomes

import Button from '@/src/components/Button'
import Header from '@/src/components/ui/Header'
import Image from '@/src/components/Image'
Copy after login

For those that don't use auto import, you do not need to remember how far the directory is from the component you are working on. It just simplifies code organization when you need to move files or refactor your project structure, you won't have to update numerous relative import paths across your codebase

Adding Path Alias to Your Project

First, you need to install React + Vite
⁠pnpm create vite setup-path-alias --template react
Next, you will go into the project directory you just created then run

cd setup-path-alias                                                                                                                                         pnpm install 
pnpm run dev    
Copy after login

Note: I used the shortcut to create the Vite app with the template, you can use any other method you prefer. So as long you create the app. I also used pnpm but you can use your preferred package manager (npm, yarn, bun....).

After that is completed, the Vite project directory looks like this
⁠├── public
├── src/
│ └── components/
│ └── HelloWorld.jsx
├── .gitignore
├── index.html
├── package.json
├── README.md
└── vite.config.js

⁠Now go to vite.config.js file, this is how the file should look by default

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
})
Copy after login

Next, we will install Path module, we use it to use the path.resolve() method, which helps create absolute paths.

pnpm i path

Then we will resolve the path alias in our vite.config.js file and the result should look like this

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import path from "path";

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [react()],
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
    }
  },
});
Copy after login

Configuring VS Code IntelliSense

To ensure VS Code recognizes your aliases, create or update jsconfig.json in your project root:

{
    "compilerOptions": {
      "paths": {
        "@/*": [
          "./src/*"
        ]
      }
    }
  }
Copy after login

Then we can update our imports from

import Button from '../../components/Button'
//to this
⁠import Button from '@/src/components/Button'
Copy after login

Note that we can make the path alias like this, and resolve as many paths as we want, then update our intellisense. I left my own simpler since my project is small and by default, the src folder contains all the project files, then I can just point it to src but when you use the components folder a lot of times in your code you can just add it to the path alias to keep your imports clean. Then again it is advised to avoid the overuse of aliases: because while they can simplify imports, overusing them can make your code less intuitive for new team members. Use aliases for common, frequently accessed directories.

⁠    alias: {
      '@': path.resolve(__dirname, './src'),
      '@components': path.resolve(__dirname, './src/components'),
  },

Copy after login

Potential Issues and How to Avoid Them

  1. Circular Dependencies: Be cautious when using aliases to avoid creating circular dependencies. Always structure your imports in a way that maintains a clear hierarchy.
  2. Overuse of Aliases: While aliases can simplify imports, overusing them can make your code less intuitive for new team members. Use aliases for common, frequently accessed directories.
  3. Inconsistent Naming: Stick to a consistent naming convention for your aliases across the project. For example, always use the '@' prefix for aliased paths.
  4. Forgetting to Update jsconfig.json: If you add new aliases in vite.config.js, remember to update jsconfig.json as well to maintain IDE support.
  5. Alias Conflicts: Ensure your alias names don't conflict with npm package names or browser globals to avoid confusion and potential errors.

Thanks for reading

The above is the detailed content of How to Setup Path Alias Vite + React. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1246
24
The Evolution of JavaScript: Current Trends and Future Prospects The Evolution of JavaScript: Current Trends and Future Prospects Apr 10, 2025 am 09:33 AM

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

JavaScript Engines: Comparing Implementations JavaScript Engines: Comparing Implementations Apr 13, 2025 am 12:05 AM

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

Python vs. JavaScript: The Learning Curve and Ease of Use Python vs. JavaScript: The Learning Curve and Ease of Use Apr 16, 2025 am 12:12 AM

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

JavaScript: Exploring the Versatility of a Web Language JavaScript: Exploring the Versatility of a Web Language Apr 11, 2025 am 12:01 AM

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.

How to Build a Multi-Tenant SaaS Application with Next.js (Frontend Integration) How to Build a Multi-Tenant SaaS Application with Next.js (Frontend Integration) Apr 11, 2025 am 08:22 AM

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base

Building a Multi-Tenant SaaS Application with Next.js (Backend Integration) Building a Multi-Tenant SaaS Application with Next.js (Backend Integration) Apr 11, 2025 am 08:23 AM

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

From C/C   to JavaScript: How It All Works From C/C to JavaScript: How It All Works Apr 14, 2025 am 12:05 AM

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

JavaScript and the Web: Core Functionality and Use Cases JavaScript and the Web: Core Functionality and Use Cases Apr 18, 2025 am 12:19 AM

The main uses of JavaScript in web development include client interaction, form verification and asynchronous communication. 1) Dynamic content update and user interaction through DOM operations; 2) Client verification is carried out before the user submits data to improve the user experience; 3) Refreshless communication with the server is achieved through AJAX technology.

See all articles