在 React 代码中使用自动更新的 CRA 环境变量

栏目: IOS · Android · 发布时间: 6年前

内容简介:最近写了本《Git 进阶指南》的 Gitbook,但(可能)由于 Gitbook CDN 上的缓存过于顽固,所以需要在访问 Gitbook 时,自动加上清缓存参数React 代码如下,当访问站点

最近写了本《Git 进阶指南》的 Gitbook,但(可能)由于 Gitbook CDN 上的缓存过于顽固,所以需要在访问 Gitbook 时,自动加上清缓存参数 ?v=版本号

React 代码如下,当访问站点 /gb 时,自动跳转外站并带上版本号:

import React from "react";
import { BrowserRouter as Router, Route } from "react-router-dom";
import Home from "./Home";

const App = () => (
  <Router>
    <div>
      <Route exact path="/" component={Home} />
      <Route path="/gb" component={Gitbook} />
    </div>
  </Router>
);

const Gitbook = () => {
  window.location = `https://gb.yekai.net/?v=${process.env.REACT_APP_VERSION}`;
  return (
    <div className="loading-box"></div>
  );
};

export default App;
复制代码

CRA 文档提到 process.env 必须使用 REACT_APP 的前缀 ,所以我们这里命名为 REACT_APP_VERSION

而 version 的值,则希望能在每次运行发布时自动更新。

具体 package.json 定义如下:

{
  "name": "yekai-net",
  "version": "1.1.2",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject",
    "publish": "REACT_APP_VERSION=$(npm version patch) npm run build && rsync -av ./build yekai:/root/centos-config/www/yekai.net/"
  }
}
复制代码

当运行 npm run publish 时,会先使用 npm version patch 命令自动更新项目版本号(此例是 1.1.2 patch 后为 1.1.3),并设置给环境变量 REACT_APP_VERSION

所以后面的 npm run build 能将 React 代码中的 ${process.env.REACT_APP_VERSION} 变量,编译成具体的 version 值 1.1.3。

最后,使用 rsync 同步到远程主机即可。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员面试手册

程序员面试手册

[印] 纳拉辛哈·卡鲁曼希(Narasimha Karumanchi) / 爱飞翔 / 机械工业出版社 / 2018-2-27 / 99

本书特色 以通俗易懂的方式讲述面试题,涵盖编程基础、架构设计、网络技术、数据库技术、数据结构及算法等主题 书中的题目来自微软、谷歌、亚马逊、雅虎、Oracle、Facebook等大公司的面试题,以及一些知名竞赛(如GATE)的考试题 全书约有700道算法题,每道题都有详细解答 针对每一编程问题,都会按照复杂度递减的顺序给出各种解法 专注于问题本身并对这些问题做出分析,......一起来看看 《程序员面试手册》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试