如何贡献?

说明

充分展示你自己的平台, 无论你是ts小白, 还是颇有见地的大佬, 都可以:

  • 贡献你的代码

  • 观摩别人的优秀代码

  • 提升你的原生能力

前置知识

帮助完善该插件库, 需要一定的基础知识:

  • 基本的Git命令

    • git branch

    • git checkout

    • git fetch & git diff & git merge

    • git push

  • 基本的Ts语法

    • interface

    • 类型注解

  • 基本的webpack知识

当然, 对于封装插件, 需要具备一点点进阶能力:

  • 面向对象基本

其它的, 会在规范要求模块中加以说明.

贡献内容

可参考ddzy

目前来说, 只囊括以下几个区块:

  • business (业务相关)

  • canvas (canvas特效相关)

  • utility (工具方法相关)

    • dom (DOM方法)

    • array (数组方法)

    • function (函数方法)

    • number (数值方法)

    • object (对象方法)

如果你已经有了明确的贡献内容, 那么just do it. 如果你暂时没有明确的目标, 那么可以参考这篇Wiki, 我来给你定目标.

具体流程

第一步: 获取

两种方式(建议使用第二种, 方便省事)

# 方式一
git clone https://github.com/ddzy/ts-utility-plugins.git

# 方式二
fork & git clone your.git

第二步: 开发

开发前请仔细阅读规范要求

2.1 development

开发环境中, 由于简单的集成了webpack环境, 所以只需两步:

1. 启用ts类型检查

npm run check

2. 启动开发服务器

npm run start

2.2 test

5/10日更新已集成jest单测环境, 可按照以下步骤来启动.

(1): 步骤一

修改jest.config.ts, 修改testRegex条目中的ddzy\/__tests__为你自己的路径(注意: 该路径必须位于你的bucket下).

export default {
  testRegex: "(/ddzy\/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
};

(2): 步骤二

编写相应的测试文件, 命名方式为:

*.test.ts
// or
*.spec.ts

(3): 步骤三

启动测试服务器

npm run test

2.3 product

生产环境的构建操作, 全部交由项目owner完成

规范要求

(1): 分支规范

a. 开发前

日常提交前, 牢记先同步原分支origin分支本地分支.

具体命令可参考我的博客-原仓库与fork仓库合并.

b. 开发中

项目有两个常驻分支:

  • master

  • branch/dev

日常的开发必须在branch/dev下进行, 可于其下开辟feature-*分支, 之后mergebranch/dev中即可.

c. 开发后

个人更改需提交prbranch/dev分支.

(2): 项目规范

a. 结构

关于项目结构的规范要求, 提出以下几点:

  1. 需在src下建立bucket, 命名为你的github用户名.

  2. 日常开发只能在你的bucket下进行.

  3. bucket下须有三个大区块:

    • business

    • canvas

    • utility

下面是规范的结构图, 可参考ddzy:

b. 代码

关于coding规范, 个人风格迥异, 不作要求...

c. README

一个良好的README.md能看出你对该项目的重视、了解程度, 所以请在你的bucket下建立一个规范的README.md, 帮助别人了解你的项目:

  • 做了什么?

  • 如何去做?

可参考ddzy/README.md

(3): 提交规范

良好的commit, 既能方便查阅历史提交, 又赏心悦目, 何乐而不为?

具体请参考angular规范

想在commit中添加可爱的emoji?

参考: 在git commit中添加表情

注意事项

如果你的项目README.md过于冗长, 可以考虑提取至其它在线站点——GitbookVuepress都是非常不错的选择!

Q&A

待补充...

最后更新于