使用ts构建的react项目配置别名

2022-05-08  本文已影响0人  杨埊

一.使用ts构建的react项目,现在tsconfig.json文件中配置baseUrl和paths。由于直接在tsconfig.json里面配置paths字段后重启项目,会将配置好的paths自动移除,所以采用extends字段让tsconfig.json继承自定义的tsconfig.paths.json。步骤如下:

  1.现在项目根目录下创建tsconfig.paths.json文件,内容如下:

{

  "compilerOptions": {

    "baseUrl": "./",

    "paths": {

      "@/*": ["src/*"]

    }

  }

}

  2.在tsconfig.json中继承tsconfig.paths.json文件,使用了tsconfig.json提供的extends字段:

{

  "compilerOptions": {

    "target": "es5",

    "lib": [

      "dom",

      "dom.iterable",

      "esnext"    ],

    "allowJs":true,

    "skipLibCheck":true,

    "esModuleInterop":true,

    "allowSyntheticDefaultImports":true,

    "strict":true,

    "forceConsistentCasingInFileNames":true,

    "noFallthroughCasesInSwitch":true,

    "module": "esnext",

    "moduleResolution": "node",

    "resolveJsonModule":true,

    "isolatedModules":true,

    "noEmit":true,

    "jsx": "react-jsx",

    "experimentalDecorators":true  },

  "include": [

    "src"  ],

  "extends": "./tsconfig.paths.json"}

3.配置完tsconfig.json文件后,就需要安装customize-cra和react-app-rewired库:

    yarn add customize-cra react-app-rewired --save-dev

  4.修改package.json:

"scripts": {

    "start": "react-app-rewired start",

    "build": "react-app-rewired build",

    "test": "react-app-rewired test",

    "eject": "react-app-rewired eject"  }

  5.在项目根目录下新建config-overrides.js(只能是js文件,别建成ts文件了),内容如下:

const { override, addDecoratorsLegacy, addWebpackAlias } = require("customize-cra");

const path = require("path");

module.exports =  override(

  addDecoratorsLegacy(),

  addWebpackAlias({

    "@": path.resolve(__dirname, './src')

  })

);

6.配置完成,可以在项目中使用如:import App from "@/App"的导入方式了

上一篇下一篇

猜你喜欢

热点阅读