# digital-chicken
**Repository Path**: c0dedance/digital-chicken
## Basic Information
- **Project Name**: digital-chicken
- **Description**: 智慧肉鸡云服务平台
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2022-03-25
- **Last Updated**: 2024-03-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ✨ 介绍
本项目使用 react + tsx/js + webpack + reducx + styled-components + pnpm 编写
~~网址:暂未部署~~
# :fire:Quick Start
## :runner:如何运行
项目使用 pnpm 作为包管理器,首次运行需要安装一下 pnpm
pnpm 与 npm 操作相似,只需一会会你便可从 npm 迁移到这边
```bash
npm i pnpm -g # 全局安装pnpm
pnpm i # 安装依赖
pnpm start # 运行项目脚本
```
## :package:项目结构
```js
┌── public // 静态资源(不会被Webpack打包)
├── src // 源代码
│ ├── services // API相关文件
│ ├── assets // 静态资源(会被打包)
│ ├── components // 组件库(包括自定义的组件)
│ ├── router // 路由表(路由相关文件)
│ ├── store // Redux状态管理
│ ├── utils // 全局公用方法/工具函数
│ ├── common // 通用文件(常量)
│ ├── pages // 页面,其中每个文件夹按照功能模块(子系统)划分
│ ├── App.tsx // 入口视图
│ └── index.js // 入口文件
├── .editorconfig // 统一编辑器样式
└── .gitignore // git忽略配置
└── craco.config.js // 项目webpack配置
├── babel.config.js // babel配置
├── package.json // 包管理
└── craco.config.js // webpack配置
└── pnpm-lock.yaml // pnpm锁版本文件
└── tsconfig.json // ts配置
```
## :pencil2:页面编写
页面在`src/pages`下,找到自己的文件夹编写对应代码即可,如无请往下看
举个栗子:需求是需要编写加工模块(Process)下的加工过程管理(ProcessManage),则在
1. `src/pages/process`新建 process-manage 文件夹,在文件夹下
2. 新建 index.tsx 中编写 jsx 和 js 逻辑
3. 新建 style.js 编写 styled-components 的样式
4. 【可选】在 store 中编写 redux 逻辑
以上可以模仿现有页面进行编写,同时遵循预设的规范
- 文件夹命名全部小写,中划线分割
- 统一的文件结构
- 等等
# :book:简明教程
## styled-components
styled-components 可以在 js 中编写 css 样式(CSS in JS),他既有 css 预处理器的能力:可书写样式嵌套、变量函数定义、循环等,也有超越其能力的动态绑定样式等
1. 安装插件`vscode-styled-components`,安装后在 js 文件书写样式会有提示,否则会很痛苦!
2. 引入:`import styled from 'styled-components'`
3. 编写样式:styled.div` `,通过反引号(模板字符串)去调用方法,反引号内写样式
在这里跟在 css 文件很相似,DivWrapper 包裹在哪里,css 就在哪里生效
4. 导入并使用

## pnpm
官网:https://pnpm.io/zh/
**npm&pnpm 命令对比**
| 描述 | npm | pnpm |
| ------------ | --------------------- | ----------------- |
| 安装所有依赖 | npm install/i | pnpm install/i |
| 安装单个依赖 | npm install/i | pnpm add |
| 卸载所有依赖 | npm unintall/un | pnpm remove |
| 卸载单个依赖 | npm unintall/un | pnpm remove |
| 全局安装 | npm i xxx --global/-g | pnpm add -g |
| 更新 | npm update | pnpm update |
## Git
开发前,需要确认在你自己的分支上进行
### 一、初始化
链接远程仓库(为远程仓库起别名)
```bash
git remote add origin git@gitee.com:c0dedance/digital-chicken.git
```
### 二、基本操作
#### 2.1 查看状态
```bash
git status
```
#### 2.2 添加
指定文件提交到暂存区
```bash
git add
```
将工作目录文件全都提交到缓存区
```bash
git add .
```
#### 2.3 提交
缓存区文件提交到仓库
```bash
git commit -m "<消息>"
```
#### 2.4 推送
推送到远程仓库你的分支上
```bash
git push origin <你的分支名>
```
# :pushpin:规范
## 组件目录和文件组织规范
## 代码风格
### ESLint
Eslint 是一个可以检验代码,并给出报告的工具。它的目标是保证代码的一致性,避免错误。
你需要在你的 VSC 安装插件:eslint

### prettier
Prettier 是一款强大的代码格式化工具
你需要在你的 VSC 安装插件:prettier

### editorconfig
约束编辑器代码的风格,消除编码差异:回车符合、缩进距离等
你需要在你的 VSC 安装插件:EditorConfig for VS Code
## Git 贡献提交规范
`commit 消息组成:类型 + 冒号 + 空格 + 动宾短语`
如:feat: 完成 xxx 页面编写
fix: 修复了页面无法跳转的 bug
`feat`/`fix`最为常用
### 类型
- `feat` 增加新功能
- `fix` 修复问题/BUG
- `style` 代码风格相关无影响运行结果的
- `perf` 优化/性能提升
- `refactor` 重构
- `revert` 撤销修改
- `test` 测试相关
- `docs` 文档/注释
- `chore` 依赖更新/脚手架配置修改等
- `workflow` 工作流改进
- `ci` 持续集成
- `types` 类型定义文件更改
- `wip` 开发中