美文网首页
前端工程,yarn run start配合Jenkins脚本实现

前端工程,yarn run start配合Jenkins脚本实现

作者: 叶叶叶同学 | 来源:发表于2021-04-28 09:10 被阅读0次

问题描述:

前端工程里,比较常见的会遇到,比如编译的时候,需要分Release和Dev环境编译,手工的话,以CRA为例子,可以在项目根目录里定义.env文件,在run build之前手动改.env文件内容

/* .env */
REACT_APP_ENV=DEV
REACT_APP_LANGUAGE=en
REACT_APP_ROUTE_NAME=edu_loan

在项目里读取可以是:

const env = process.env.REACT_APP_ENV;
console.log("env", env); // DEV

但是遇到jenkins自动化部署,就不能这么来了,不然每次都要重新git push一下.env的变化,会很麻烦,怎么解决呢?

解决:

目光来到package.json

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
  }

Jenkins脚本,走的也是yarn run build,那么新定义一个命令,命令传参,覆盖.env的值即可

在mac+linux下,

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "build:release": "REACT_APP_ENV=RELEASE react-app-rewired build",
  }

而在win下

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "win-build:release": "set REACT_APP_ENV=RELEASE&& react-app-rewired build",
  }

考虑团队开发者有可能用mac也可能用win,那么定义命令最终如下:

"scripts": {
    "start": "react-app-rewired start",
    "build": "react-app-rewired build",
    "build:release": "REACT_APP_ENV=RELEASE react-app-rewired build",
    "win-build:release": "set REACT_APP_ENV=RELEASE&& react-app-rewired build",
  }

在win下手动打release包,用yarn run win-build:release命令,mac和linux下用yarn run build:release,而jenkins一般部署在服务器上,则一般使用yarn run build:release来进行生产部署,而视要部署环境,部署脚本可以分别让Jenkins执行不同的命令,Perfect

相关文章

网友评论

      本文标题:前端工程,yarn run start配合Jenkins脚本实现

      本文链接:https://www.haomeiwen.com/subject/yofprltx.html