一个微型 Javascript 开源项目(timeago.js)如何在 4 天到 1000 star ?
发布于 8 年前 作者 hustcc 6242 次浏览 来自 分享

这里要提到的是我之前从项目抽离出来的微型 Javascript 项目 timeago.js,为什么是微型,因为他还不到 2kb,这个也是做这个项目的原因之一。(这个项目在cnodejs之前发过帖子的,不愠不火)[https://cnodejs.org/topic/576d3463d3baaf401780bb48]

已有的类似项目不是一般都依赖 jQuery 和 moment.js,实际上仅仅用到其中的选择器、一个日期方法(fromNow),为了这么一点方法依赖,而引入则好么大的库,个人感觉不是很划算。

http://static.oschina.net/uploads/space/2016/0912/133711_0Rge_134320.png

timeago.js 项目大概开始于今年6月底左右,抽离出来,npm publish之后,在自己的多个项目中使用良好,就没有再多做更新了,后来因为另外一个项目中的 PR 引用到 timeago.js 项目,所以决定好好做一做,并推广一下,并陆续增加修改如下东西:

  1. 增加实时更新方法 render,可以选择一些节点实时更新和计算;
  2. 完善Testcase,使用travis CI;
  3. 申请域名 timeago.org,后来因为这个域名和其他项目产生了一些不愉快,不过无所谓,我很大条;
  4. 更新优化本地化 locale文件的格式;
  5. 新开一个 issue 专门记录 locale 的 pr;

然后将域名 timeago.org 发到 Hack New上,然后就是域名被老外转到reddit,并且关于创造更小的轮子,依赖jQuery这些问题引起了一些争论,再然后就过了一天,就上了 Github 的 Trending 总榜,目前已经在榜上 4 天了。就在这次天内,star 数量瞬间达到 1000 +,自己还是很激动的。

说说自己的感想吧?

  1. 如果真的想好好做一个项目,还是申请一个合适的域名吧,这样可能会给人更加专业,更加重视的感觉;
  2. 老外真的特别喜欢发 pr 和 issue,可能是国内程序员的时间被商人完全榨干了;
  3. 保证项目有完善的测试,travis CI集成起来其实非常简单;
  4. 项目特色,比如timeago.js特色就是tiny(1.75 kb完成其他项目依赖 jQ 的事情),并且在多个 issue 中要求 pr 一定要保证代码的简洁;
  5. PR 规范,比如 timeago.js 中的主要 pr 来源于本地化语言的翻译,所以我会专门开一个issue来展现需要 pr 哪些语言,然后大家一目了然,可以增加大家 pr 的积极性;

做好这些之后,就可以到一些技术论坛发发文章,博客了,具体发哪些位置呢?

Hack New、开发者头条、V2ex、OSChina、segmentfault、极客头条等等。我对国外技术站点不是很了解,仅仅发了 Hack New。

然后就是等着其他开发人员给你提意见、建议,然后积极响应和修改吧。

6 回复

到处都能看到,推广6⃣️,感觉过几天都能发一周过2000了😄 来自 牛读

试了一把,挺不错的哇,以前都是用moment 话说,这个npm包可以做时间的格式化么?还有似乎api变动但是README没有更新么,因为git的例子貌似有问题:

const timeago = require("timeago.js");
//这里不能执行了
timeago.register('test_local', test_local_dict);
var timeagoInstance = new timeago();
//这里写成timeagoInstance.format('2016-06-12')似乎就可以了
timeagoInstance.format('2016-06-12', 'test_local');

国内程序员的时间被商人完全榨干 +1

@hyj1991 npm也有的。有一个format方法,前段使用render方法可以实时更新。master分支的代码是v2.x.x的,但是npm发布的目前是1.x.x版本,所以有一些不兼容API。 关于v1.x.x的使用可以参考:https://github.com/hustcc/timeago.js/wiki/timeago.js-v1.x.x-使用文档

@nihgwu 哈哈,前面真的没有推广,上了1000之后,太激动了,没有过这种感觉,所以学着别人写了一篇文章到处发,最开始是知乎,被人转了很多。

只有 700 个 star 的时候,还贡献过代码

回到顶部