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

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

在index.html文件中使用变量

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

html 复制代码
<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标签中使用方式,随便引入一个库
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配置

  • 安装依赖
bash 复制代码
 "devDependencies": {
    "@craco/craco": "^7.1.0"
  }
  • 修改配置文件,这里要参考craco和webpack的官网,进行对应详细的options配置
  • 在项目根目录下面新建一个craco.config.js的配置文件
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;
      },
    },
  },
};
相关推荐
wangruofeng1 小时前
2026 Web 技术选型指南,AI 时代如何选择适合项目的技术栈
前端·aigc·ai编程
honkun61 小时前
vue 表格组件 vxe-table 修改滚动条样式,修改滚动条样式,统一宽度、颜色与自动隐藏
前端·javascript·vue.js
爱勇宝1 小时前
研究数字孪生的这半年,做了个 Demo,也有了一些新想法
前端·程序员
不可能片场1 小时前
工程实践 一个缓存把选片从十分钟压到一分钟
前端·electron
前端小万1 小时前
探索副业五个月,最终以放弃告终
前端·后端·面试
FRing032 小时前
JavaScript入门到精通二十四(正则表达式、元字符、修饰符)
开发语言·前端·javascript·正则表达式
葡萄城技术团队2 小时前
在 SpreadJS 里新增右键菜单,把业务动作放到用户手边
前端
大明二代2 小时前
从 RAG 到有记忆的 Agent:Mastra Memory 与 PostgreSQL 实战
前端·javascript·人工智能
deli0072 小时前
代码截图一键出 PNG 实测:3 种窗口风格,长行超 95 字符会被裁
前端
大哥43092 小时前
慢 ≠ 挂:AI 搜索降级判定的设计,与一次 reasoning 模型排查复盘
前端