craco别名配置

craco版本:6.3.0

1.安装craco-alias

yarn add craco-alias

2.craco.config.js配置

const CracoAlias = require("craco-alias");
const WebpackBar = require("webpackbar");
const path = require("path");
module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "options",
        baseUrl: "./",
        aliases: {
          "@mui/styled-engine": "./node_modules/@mui/styled-engine-sc",
        },
      },
    },
  ],
  webpack: {
    alias: {
      "@": path.resolve("src"),
    },
    plugins: [new WebpackBar()],
  },
};

3.tsconfig.json配置

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

4.你以为结束了????

当运行代码时,tsconfig.json会被重置,你配置的paths会重置掉,然后报错。

推荐新建文件tsconfig.path.json

// tsconfig.path.json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"],
      "@svg/*": ["src/assets/svg/*"],
      "@img/*": ["src/assets/images/*"],
      "@icons/*": ["src/assets/icons/*"],
      "@shared/*": ["src/shared/*"],
      "@components/*": ["src/components/*"],
      "@hooks/*": ["src/hooks/*"],
      "@constants/*": ["src/constants/*"],
      "@layout/*": ["src/layout/*"],
      "@services/*": ["src/services/*"]
    }
  }
}

tsconfig.json引入下面的文件

{
  "extends": "./tsconfig.path.json",
  "compilerOptions": {
  },
}

03-08
### Craco简介 Craco(Create React App Configuration Override)提供了一种简单易懂的方式用于自定义由`create-react-app`创建项目的内部配置,例如修改Webpack配置或是覆盖`react-scripts`的默认设定等[^1]。 ### 安装Craco 对于希望在已有的`create-react-app`项目中引入craco以实现更灵活配置的需求而言,在命令行工具里执行如下npm指令完成craco及其相关依赖包的安装: ```bash npm install @craco/craco --save ``` 如果想要支持LESS文件处理,则还需额外安装`craco-less`: ```bash npm install craco-less --save ``` 上述操作会将所需软件包添加到项目的依赖列表之中[^4]。 ### 修改Package.json中的脚本命令 为了使craco生效,需调整`package.json`内的脚本部分,具体做法是把原本调用`react-scripts`的地方改为调用`craco`。以下是经过改动后的样例代码片段: ```json { ... "scripts": { "start": "craco start", "build": "craco build", "test": "craco test", "eject": "react-scripts eject" }, ... } ``` 通过这样的更改可以确保当运行这些NPM生命周期事件时能够正确加载并应用craco所定义的新配置项[^5]。 ### 编写Craco配置文件 最后一步是在根目录下新建名为`craco.config.js`的JavaScript模块来描述具体的定制化需求。下面给出一段简单的例子展示怎样设置路径别名以及启用对Less的支持: ```javascript const path = require('path'); module.exports = { webpack: { alias: { '@components': path.resolve(__dirname, 'src/components/'), '@assets' : path.resolve(__dirname,'src/assets/') } }, style: { sass: { loaderOptions: { additionalData: `@import "@/styles/_variables.scss";`, }, }, modules: { localIdentName: '[local]-[hash:base64:5]', }, }, }; ``` 这段代码实现了两个功能:一是为组件和资源文件夹设定了快捷访问方式;二是针对Sass样式表设置了全局变量导入机制,并指定了CSS Modules模式下的类名生成规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值