慕课网学习笔记,课程地址请狠狠点击这里。这次课程中,主要说明了几个问题,分别是:
- 为什么要做开源项目
- 可以做哪些开源项目
- 开源项目的基本组成
- 开源项目开发流程
另外,还从本课程中学习到了一些技巧:
- git的使用
- 便捷的开源软件,如http-server(快速搭建一个小型的服务器),gitbook(生成漂亮的说明文档)
- 在npm发布开源软件
为什么要做开源项目
- 全面提升编程能力;
- 提高社区知名度;
- 锻炼产品意识
- 技术范儿,极客精神。
可以做哪些开源项目
现在开源项目五花八门,我们可以从哪些方面切入来寻找开源项目的灵感呢?首先我们要明确不能做的一些开源项目类型,他们有这样的特点:
- 大型框架:人家以公司项目组为单位完成,你没这么多精力;
- 成熟的项目:比如JQuery,你写出来人家也不会换成你的;
- 小众的东西:一点市场也没有;
- 没有特色:完全抄袭的话,人家为什么要用你的?
那么,我们应该做怎样的项目?
- 小而精的工具:虽然小,大家都得用,频繁用;
- 有自己的特色,差异化竞争:你得有自己的亮点,它足以吸引感兴趣的用户,比如说你的UI比人家好看,交互更加便利,即使功能不一定有人家强大;
- 大众:大家都能用;
- 避开已经垄断的:Vue、React,这种已经有权威的项目不要去尝试,你要做的是那种所有人都做了但是没人一枝独秀的。
开源项目的基本组成
- 源代码
- 文档:使用文档、二次开发文档
- 开发环境:如何搭建、运行你的项目或者引用你的工具
- 允许他人贡献代码
- 问题:用户提问,维护者回答,
github issue
- 问题列表和升级计划:TODO | INPROGRESS | DONE
开源项目开发流程
- 搭建开发环境
1)github建立项目,README.md、.gitignore
2) 为了能够使用git bash来进行git操作,需要配置SSH,具体的配置可以参考[windows下GitHub的SSH key配置](https://blog.youkuaiyun.com/sam_zhang1984/article/details/78668250)
3) 安装node、npm
4)npm init
5)webpack等一系列项目自动化构建工具的安装配置
- 构建项目
Project
|--README.MD
|--package.json 这是依赖库
|--release 存放编译后的bundle.js
|--src
| |--index.js 这是主要的源文件
|--test 测试用
|--example 一些使用示例文件
| |--example1.html
|--doc 存放说明文档,包含了使用说明文档,二次开发说明文档等
| |--use
| |--dev
|...
编写代码
撰写文档
# project
## 简介
这个项目有什么特色
## 安装下载
- 下载地址 https://github.com/moyemoji/projectTest/releases
- npm install XXX
- CDN
## 快速使用
简单接入的文档
- [使用文档](./doc/use/README.md)
- [二次开发文档](./doc/dev/README.md)
## 交流 & 提问
https://github.com/moyemoji/projectTest/pulls
QQ群
## 关于作者
- 迭代维护
git使用
//连接你的git
cd your_project
git config --add user.email your@email
git config --add user.name your_name
//基本的更新操作,小的更新
git add .
git commit -m "update log"
git push origin master
//分支相关:新建分支、切换分支、合并分支
git branch -b dev
git checkout dev
git merge dev
git push origin master
//新建标签,即一个大的版本v0.0.1
git tag -a 'v0.0.1' -m 'v0.0.1'
git push origin master
便捷的开源软件
//http-server
npm install http-server -g
npm run http-server -p 8880
//gitbook
npm install gitbook-cli -g
gitbook init //生成带有结构的md文件
gitbook build //将md文件转化为html文件,存储在_book中,可以在github-pages中发布作为项目主页来使用
npm发布开源项目
npm adduser XXX
npm login
//注意使用npm官方源,不要使用淘宝源,否则会报错
npm publish