EESAST 网页前端
NodeJS 20
(官网下载安装包)NPM
(Node
自带)Yarn
(npm i yarn -g
)
REACT_APP_API_URL
:生产环境后端地址,默认为https://api.eesast.com
REACT_APP_API_DEV_URL
:测试环境后端地址,默认为https://api-dev.eesast.com
REACT_APP_HASURA_HTTPLINK
/REACT_APP_HASURA_WSLINK
:生产环境Hasura
数据库地址,默认为api.eesast.com/v1/graphql
REACT_APP_HASURA_DEV_HTTPLINK
/REACT_APP_HASURA_DEV_WSLINK
:测试环境Hasura
数据库WebSocket
地址,默认为api-dev.eesast.com/v1/graphql
- 若需使用
GraphQL CodeGen
,要创建.env.local
文件,并添加HASURA_GRAPHQL_ADMIN_SECRET
yarn install // 如果Node版本低于20,可能会报错,需要添加参数--ignore-engines
yarn start // 如果Node版本低于20,可能会报错,需要添加参数--openssl-legacy-provider
GitHub Copilot & GitHub Copilot Chat
Prettier
ESLint
vscode-styled-component
GraphQL: Language Feature Support
React DevTools
:调试React
组件
rimraf
:在Windows
上删除node_modules
文件夹时更高效,类似于Linux
中的rm -rf
yarn start
:支持热更新,保存文件后自动刷新页面yarn generate
:根据数据库自动生成类型文件yarn build
:编译打包源文件yarn analyze
:对build
内的打包进行构成分析yarn test
:使用Jest
进行测试yarn lint
:使用ESLint
进行语法检查yarn typecheck
:使用tsc
进行类型检查
Commit
之前自动使用husky & lint-staged & prettier
工具链进行代码风格美化- 相关配置见
.husky/*
和package.json
- 相关配置见
Commit
之后使用Github Actions
进行自动化测试,包含Jest
测试、ESLint
语法检查、tsc
类型检查- 相关配置见
.github/workflows/*
- 相关配置见
- 使用
Renovate Bot
和Mergify
进行依赖自动更新- 相关配置见
.github/renovate.json
和.github/mergify.yml
- 相关配置见
- 依赖引入原则
- 能用
Plain HTML
、CSS
、正则表达式解决的问题,不额外引入依赖 - 优先使用
React
、antd
官方推荐的、或社区活跃度高(star)的包 - 优先使用自带
TypeScript
类型系统的包 - 不引入过于庞大的包(如
lodash
),可以用其旗下的子包(如lodash-es
)替代 - 不引入过时(最近一次更新时间超过一年、或官网说明
Deprecated
)的包 - 区分
dependencies
和devDependencies
(后者用yarn add -D
添加) - 指定版本号,不使用
^
和~
(为了Renovate Bot
能够自动更新)
- 能用
- 依赖管理方法
yarn outdated
:查看过时的依赖depcheck
:查看未被使用的依赖(需要先安装depcheck
)
- 依赖手动更新原则
- 使用
yarn upgrade-interactive
进行交互式更新 - 了解
Sementic Versioning
语义化版本规范,先更新到最新的patch
版本,再逐步更新minor
版本,更新major
版本时需要谨慎,可以查阅网上已有教程或更新脚本 - 更新前
commit
所有更改,更新后测试无报错后立即commit
- 若发现有依赖长期未更新或显示
Deprecated
,可以考虑替换同类依赖
- 使用
- 对主分支的
push
会触发自动化生产,相关配置见.github/workflows/*
- 使用
Dockerfile
进行构建,并上传到Docker Hub
- 与
yarn build
相同,优点是跨平台
- 与
docker pull eesast/web:latest // 下载Docker-Hub镜像
docker-compose up -d
server_name eesast.com, 反向代理到27776
端口