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

news/2025/1/11 23:33:34/

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/news/1562354.html

相关文章

如何在谷歌浏览器中使用安全沙箱

谷歌浏览器的沙箱机制是一种重要的安全功能&#xff0c;可以有效隔离浏览会话中的每个标签页和插件&#xff0c;以防止恶意软件攻击用户系统。本文将详细介绍如何在谷歌浏览器中启用和使用沙箱功能。 一、什么是谷歌浏览器沙箱&#xff1f; 谷歌浏览器的沙箱是一种安全机制&am…

ffmpeg常用命令及介绍

FFmpeg 是一个非常强大的多媒体处理工具&#xff0c;可以用来进行视频和音频的转换、剪辑、合并、提取等多种操作。以下是一些常用的 FFmpeg 命令及其功能介绍&#xff1a; 1. 基本命令结构 FFmpeg 的基本命令结构如下&#xff1a; ffmpeg [全局选项] [输入文件选项] -i 输入…

鼠标过滤驱动

文章目录 概述代码参考资料 概述 其编写过程大体与键盘过滤驱动相似&#xff0c;只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息&#xff0c;于是通过在获取鼠标驱动&#xff0c;遍历其所有的设备进而附…

省市区三级联动(后端)

前提&#xff1a;springboot、mybatis-plus、swagger 数据库&#xff1a; 文章顶部 实体类&#xff1a; City package com.itfly.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import java.time.Loca…

如何在 Ubuntu 22.04 上安装 Nagios 服务器教程

简介 在本教程中&#xff0c;我们将解释如何在 Ubuntu 22.04 上安装和配置 Nagios&#xff0c;使用 Apache 作为 Web 服务器&#xff0c;并通过 Let’s Encrypt Certbot 使用 SSL 证书进行保护。 Nagios 是一个强大的监控系统&#xff0c;它可以帮助组织在 IT 基础设施问题影…

使用 Three.js 创建动态粒子效果

今天&#xff0c;带大家使用粒子实现一个粒子飞毯的效果&#xff0c;我们先来看一下效果。 实现 初始化场景 首先创建一个场景&#xff0c;所有 3D 对象都会被添加到这个场景中。 const scene new THREE.Scene();相机和渲染器 配置相机和渲染器来捕捉和显示场景。 相机…

【如何使用JVM工具进行性能分析?】

如何使用JVM工具进行性能分析&#xff1f; 使用JVM工具进行性能分析可以帮助开发者监控Java应用程序的运行状况&#xff0c;识别潜在的性能瓶颈&#xff0c;并据此进行优化。以下是几种常用的JVM性能分析工具及其详细使用方法&#xff1a; 1. jstat jstat是一个命令行工具&a…

事务,事务的特点,事务并发带来的问题,实现事务管理

1.什么是事务 1、事务管理是企业级应用程序开发中必不可少的技术&#xff0c;用来确保数据的完整性和一致性 2、事务是一系列动作&#xff0c;它们被当作一个独立的工作单元&#xff0c;这些动作要么全部完成&#xff0c;要么全不起作用。 2.事务的特点 ACID 1.原子性&#xf…