适用:使用 create-react-app 创建项目,不想 eject 项目但想对项目中 wepback 进行自定义配置的开发者。

1.使用 create-react-app创建一个项目(已有项目跳过此步)

$ npx create-react-app my-project

2.进入项目目录,安装依赖

// 根据项目情况安装
$ npm install antd -S
$ npm install @craco/craco craco-less @babel/plugin-proposal-decorators babel-plugin-import -D

3.配置craco.config.js(该文件与src同级)

const CracoLessPlugin = require('craco-less')
const path = require('path')const pathResolve = pathUrl => path.join(__dirname, pathUrl)module.exports = {webpack: {alias: {'@@': pathResolve('.'),'@': pathResolve('src'),'@assets': pathResolve('src/assets'),'@common': pathResolve('src/common'),'@components': pathResolve('src/components'),'@hooks': pathResolve('src/hooks'),'@pages': pathResolve('src/pages'),'@store': pathResolve('src/store'),'@utils': pathResolve('src/utils')// 此处是一个示例,实际可根据各自需求配置}},babel: {plugins: [['import', { libraryName: 'antd', style: true }],['@babel/plugin-proposal-decorators', { legacy: true }]]},plugins: [{plugin: CracoLessPlugin,options: {// 此处根据 less-loader 版本的不同会有不同的配置,详见 less-loader 官方文档lessLoaderOptions: {lessOptions: {modifyVars: {},javascriptEnabled: true}}}}]
}

4.修改 package.json 中的 scripts

  "scripts": {"start": "set PORT=5000 && craco start","build": "set GENERATE_SOURCEMAP=false && craco build","test": "craco test"},

上面用到了两个环境变量:
PORT 启动端口
GENERATE_SOURCEMAP 打包时是否生成 sourceMap

5.创建 jsconfig.json

{"compilerOptions": {"baseUrl": "./","paths": {"@@/*": ["./*"],"@/*": ["src/*"],"@assets/*": ["src/assets/*"],"@common/*": ["src/common/*"],"@components/*": ["src/components/*"],"@hooks/*": ["src/hooks/*"],"@pages/*": ["src/pages/*"],"@store/*": ["src/store/*"],"@utils/*": ["src/utils/*"]},"experimentalDecorators": true},"exclude": ["node_modules", "build"]
}

根据项目实际情况配置 craco.config.js 中别名即可,其他更详细配置可以参考 vscode 官方文档。

原文链接:使用 craco 配置基于 create-react-app 的开发环境

6.遇到的问题

遇到此类问题可能是配置冲突导致,尝试修改craco.config.js

将上边配置的craco.config.js修改为:

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

重启项目,antd--Button即可正常使用

React项目使用craco(由create-react-app创建项目)相关推荐

  1. ssm 项目cannot resolve package_前端工程化之创建项目

    前言 在我们团队,刚开始创建项目,是直接使用框架的 cli 进行创建项目,并修改相关配置.随着项目的增多,沉淀了两套模板,平台端及移动端.后来,我们自己写了一个简单的 cli,并提供了 create ...

  2. 如何使用Create React App DevOps自动化工作中所有无聊的部分

    by James Y Rauhut 詹姆士·鲁豪(James Y Rauhut) 如何使用Create React App DevOps自动化工作中所有无聊的部分 (How I automate al ...

  3. Vite 3.0 vs. Create React App:比较和迁移指南

    Create React App (CRA) 在 React 社区及其整个生态系统的发展中发挥了关键作用. 在突发奇想构建本地 React 开发环境时,它是不同技能的开发人员的首选工具. CRA 拥有 ...

  4. react快速开始(二)-使用脚手架Create React App创建react应用

    文章目录 react快速开始(二)-Create React App入门 什么是Create React App 快速开始 使用IDE webstrom创建react项目 create react a ...

  5. React 开发环境的搭建 (React脚手架)

    1. react脚手架 xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置(语法检查.jsx编译.devServer-) 下载好了所有相关的依赖 可以直接运行一个简 ...

  6. react安装_「React实战」三分钟搭建React开发环境

    其实16年的时候就已经接触到React,那个时候也只是入门,时隔多年,工作上一直都没有接触到相关的业务,不知不觉,前端的天也开始渐变,看到 了很多招聘要求上都是要求会React,三大框架怎么也得熟悉使 ...

  7. 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作

    Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...

  8. vue创建项目卡住不动,vue create project卡住不动

    第一种方法: 好久没有创建vue新项目了,今天创建了一个新项目,一运行 vue init webpack project_name 就卡住不动,换 vue create project_name 也是 ...

  9. 华为手表开发:WATCH 3 Pro(3)创建项目以及运行完整流程

    华为手表开发:WATCH 3 Pro(3)创建项目以及运行完整流程 初 环境与设备 创建项目 创建项目入口 配置项目 运行项目 报错 需要在 Appgallery Connect , 创建项目,然后在 ...

  10. Android Studio创建项目

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Andr ...

最新文章

  1. 字典统计排序python123_按值对字典进行排序Python(3级Dict)
  2. Druid使用ConfigFilter
  3. CDH集群安装配置(四)- mysql 的安装
  4. microbit编程_使用图形化编程实现主控板与手机蓝牙通讯(2019.3.25)
  5. Android之使用ViewPager实现图片展示(最简单的)
  6. 为什么需要建设者模式
  7. AQL学习笔记(二)--文档的创建
  8. 【202209秋招软开银行面试C++】
  9. 2021年Robocom 复赛题解
  10. pythonfor循环100次_Python之for循环
  11. IBM沃森Watson答题过程全揭秘
  12. VSCode中调试flutter遇到Android licenses not accepted的错误提示
  13. Centos7---查看内存型号
  14. 为什么输入法显示中文打不出中文_搜狗中文输入无法显示汉字怎么办_win10搜狗输入法打不出汉字的解决方法...
  15. 「星火计划沙龙视频」云原生数据湖专场
  16. please insert the disc labeled ‘Ubuntu 18.04.5 LTS _Bionic Beaver_ - Release amd64 (20200806.1)‘ in
  17. linux---VI
  18. python制作数据增长动图_手把手教你做一个python+matplotlib的炫酷的数据可视化动图...
  19. C# 导入EXCEL 报错外部表不是预期的格式错误
  20. python读取文件夹下所有图片

热门文章

  1. MATLAB:海洋捕食者算法(MPA)优化BP神经网络权值和阈值用于月径流预测
  2. 格式化移动硬盘:Windows/Ubuntu/Mac OS系统全兼容,可读写
  3. arduino彩灯计时器电路_Arduino UNO 制作LED节日彩灯
  4. 实现SSR服务端渲染
  5. 做项目必须懂的三个概念 认证、会话、授权
  6. 非侵入式负荷matlab程序,非侵入式负荷分解之BLUED数据集
  7. 基于opencv+dlib的face morph
  8. PIC18F45K80单片机串口调试总结
  9. C语言使用指针处理opencv中的Mat图像数据
  10. 免费工具长尾,免费长尾词挖掘工具挖词的方法