【react进阶】create-react-app高阶配置

server/2025/1/12 4:58:02/

create-react-app新建项目还是官网推荐的主流方法,当然vite已经使用越来越广泛了,构建速度也是比cra快几倍。记录下怎么用cra来搭建一个react项目。

在index.html文件中使用变量

1.在script代码中的使用方式

<script>const $ = window.$ = "anc"window.SITE_CONFIG = {}if ('<%= process.env.NODE_ENV %>' === 'development') {window.SITE_CONFIG['apiURL'] = '/api';  }else {window.SITE_CONFIG['apiURL'] = '/prod_api';         }</script>
  1. 在html标签中使用方式,随便引入一个库
<% if (process.env.NODE_ENV === 'development') { %><script src="%PUBLIC_URL%/libs/vue/vue.js"></script><% } else { %><script src="%PUBLIC_URL%/libs/vue/vue.min.js"></script><% }
%>

在这里插入图片描述

3.dev环境效果
在这里插入图片描述
全局变量已经成功注入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.生产环境效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

覆盖wbepack默认样式

不要轻易弹出create-react-app的配置,这个操作是不可逆的,我们使用官网推荐的方式进行自定义webpack配置

  • 安装依赖
 "devDependencies": {"@craco/craco": "^7.1.0"}
  • 修改配置文件,这里要参考craco和webpack的官网,进行对应详细的options配置
  • 在项目根目录下面新建一个craco.config.js的配置文件
/* craco.config.js */
const path = require("path");
module.exports = {webpack: {alias: {"@": path.resolve(__dirname, "src"),   // 资源引入的绝对路径配置},},devServer: {port: 9090,client: {logging: "info",overlay: false,progress: true,},headers: {"X-Custom-Foo": "bar",},},style: {sass: {loaderOptions: (sassOptions) => {sassOptions.additionalData = `@import "@/assets/styles/_variables.scss";`;  // 全局的sass变量文件配置return sassOptions;},},},
};

http://www.ppmy.cn/server/157670.html

相关文章

面试:类模版中函数声明在.h,定义在.cpp中,其他cpp引用引入这个头文件,会有什么错误?

1、概述 类模版中函数声明在.h&#xff0c;定义在.cpp中&#xff0c;其他cpp引用引入这个头文件&#xff0c;会有什么错误?报编译错误&#xff1a;error C2512: Demo<int>: no appropriate default constructor available 举例如下代码&#xff1a;demo.h 声明模版类 …

K-means算法在无监督学习中的应用

K-means算法在无监督学习中的应用 K-means算法是一种典型的无监督学习算法&#xff0c;广泛用于聚类分析。在无监督学习中&#xff0c;模型并不依赖于标签数据&#xff0c;而是根据输入数据的特征进行分组。K-means的目标是将数据集分成K个簇&#xff0c;使得同一簇内的数据点…

【解决方案】Golang结构体传0被忽略

【解决方案】Golang结构体传0被忽略 在 Go 语言中&#xff0c;当结构体字段标记为 omitempty 时&#xff0c;在将结构体序列化为 JSON 或其他格式时&#xff0c;如果字段的零值&#xff08;比如数字类型的0、字符串类型的空字符串等&#xff09;会被忽略&#xff0c;不会被序列…

【Linux】lnav - 适用于Linux和Unix的出色终端日志文件查看器

lnav 工具有哪些独特的功能&#xff1f; 你可以根据需要实时解压缩日志文件&#xff0c;类似于 Linux 和 Unix 上的 z* 工具。自动检测日志文件格式。按时间合并多个文件&#xff0c;形成一个统一的视图。终端颜色支持&#xff0c;让你更容易发现错误和警告。支持通过 SSH (SF…

C++ 如何将 gRPC集成到机器人系统中

将 gRPC 集成到 C 机器人系统中可以显著提升系统的通信效率和性能。以下是一个基本的步骤指南&#xff1a; 安装 gRPC 和依赖项&#xff1a; 在 Linux 系统上&#xff0c;可以使用以下命令安装 gRPC 和其依赖项&#xff1a;sudo apt update sudo apt install -y build-essentia…

ingress-nginx-controller安装

ingress-nginx-controller安装 ingress-nginx-controller是配置ingress发布的基础。以下主要采用Helm安装。地址&#xff1a; GitHub - kubernetes/ingress-nginx: Ingress NGINX Controller for Kubernetes 1 Helm安装 安装不难&#xff0c;需要找到合适的压缩包就行。我自…

力扣经典题目之219. 存在重复元素 II

今天继续给大家分享一道力扣的做题心得今天这道题目是 219. 存在重复元素 II&#xff0c;我使用 hashmap 的方法来解题 题目如下&#xff0c;题目链接&#xff1a;219. 存在重复元素 II 1&#xff0c;题目分析 此题目给我们了一个整数数组 nums 和一个整数 k &#xff0c;需要…

国内 Docker 服务状态 镜像加速监控

根据Docker 服务状态选择线路&#xff0c;并且使用多个镜像源来提高镜像下载速度 https://status.1panel.top/status/docker # 将内容写入 /etc/docker/daemon.json 文件&#xff0c;root 用户可以去掉 sudo # 配置 Docker 镜像&#xff0c;使用多个镜像源来提高镜像下载速度…