ts中能够配置@路径别名简化路径处理

1,094 阅读1分钟

步骤

  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': 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"
}

参考

自定义 CRA 的默认配置 craco 配置文档

@别名路径提示

目标

能够让vscode识别@路径并给出路径提示

分析

因为项目使用了 TS,而 TS 带有配置文件 tsconfig.json。因此,不需要再使用 jsconfig.json(实际上,jsconfig.json 是参考 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",
}