前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 React 代码中使用自动更新的 CRA 环境变量

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

原创
作者头像
猫哥学前班
发布2019-02-03 12:36:10
1.7K0
发布2019-02-03 12:36:10
举报
文章被收录于专栏:猫哥学前班猫哥学前班

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

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

代码语言:txt
复制
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 定义如下:

代码语言:txt
复制
{
  "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 同步到远程主机即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档