10分钟学会如何在React+TS中配置路径别名

551 阅读1分钟

前言

在项目当中,我们在一个组件使用其他组件时,要拼写一个巨长无比的字符串,而且每引用一次都要拼写一次,如果这个文件位置变了,就要把所有引用它的文件都修改一次,所以使用路径别名可以很好的解决这个问题。

路径别名的核心解决的问题是相对路径引用不知道要写几个上级目录可以回到根目录,从而能正确引用到自己要使用的依赖。

React中设置路径别名

步骤 :

  1. 装修改 CRA 配置的包:npm i -D @craco/craco
  2. 在项目根目录中创建 craco 的配置文件:craco.config.js,并在配置文件中配置路径别名
  3. 修改 package.json 中的脚本命令
  4. 在代码中,就可以通过 @ 来表示 src 目录的绝对路径
  5. 重启项目,让配置生效

craco.config.js文件

    const path = require('path')
    module.exports = {
      // webpack 配置
      webpack: {
        // 配置别名
        alias: {
          // 约定:使用 @ 表示 src 文件所在路径
          '@': path.resolve(__dirname, 'src'),
          // 约定:使用 @scss 表示 样式 文件所在路径
          '@scss': path.resolve(__dirname, 'src', 'assets', 'styles')
        }
      }
    }

package.json文件

    // 将 start/build/test 三个命令修改为 craco 方式

    "scripts": {
      "start": "craco start",
      "build": "craco build",
      "test": "craco test",
      "eject": "react-scripts eject"
    }

@别名路径提示

TS 带有配置文件 tsconfig.json。VSCode 会自动读取 tsconfig.json 中的配置,让 vscode 知道 @ 就是 src 目录

步骤:

  1. 创建 path.tsconfig.json 配置文件
  2. 在该配置文件中添加以下配置
  3. tsconfig.json 中导入该配置文件,让配置生效

path.tsconfig.json

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  }
}

tsconfig.json

{
  // 导入配置文件
  "extends": "./path.tsconfig.json",
}