当前位置: 首页 > article >正文

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

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.kler.cn/a/502313.html

相关文章:

  • 贪心算法详细讲解(沉淀中)
  • 【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集
  • 【Docker】Docker部署多种容器
  • 基于微信小程序的汽车销售系统的设计与实现springboot+论文源码调试讲解
  • TCP封装数据帧
  • frp内网穿透
  • Perl语言的网络编程
  • Zookeeper单机操作
  • [mysql] mariabackup增量备份数据库
  • 80个Three.js 3D模型资源
  • STM32按键中断案例(HAL库实现)
  • 《Linux系统编程篇》POSIX信号量(Linux 进程间通信(IPC))——基础篇
  • 数组排序------冒泡排序
  • 【经验】MCU在keil和IAR中开启FPU 硬件浮点运算单元
  • 06_Redis数据类型-List列表
  • 设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析
  • vue3之router路由
  • C#基础 枚举 Enumeration从基础到进阶
  • 深入理解计算机系统阅读笔记-第十二章
  • 【计算机网络 】网络编程(TCP)
  • 基于OQuPy的量子编程实例探究:理论、实践与展望
  • 局域网共享文件夹实现两台Windows电脑之间传输文件
  • Python语言的字符串处理
  • 【高项】项目经理的角色,和应该具有的能力
  • Hive,Oracle,redis同步数据之-从其他数据源同步到本地数据库之一
  • macos python环境安装