这里要提到的是我之前从项目抽离出来的微型 Javascript 项目 timeago.js,为什么是微型,因为他还不到 2kb,这个也是做这个项目的原因之一。(这个项目在cnodejs之前发过帖子的,不愠不火)[https://cnodejs.org/topic/576d3463d3baaf401780bb48]
已有的类似项目不是一般都依赖 jQuery 和 moment.js,实际上仅仅用到其中的选择器、一个日期方法(fromNow),为了这么一点方法依赖,而引入则好么大的库
,个人感觉不是很划算。
timeago.js 项目大概开始于今年6月底左右,抽离出来,npm publish之后,在自己的多个项目中使用良好,就没有再多做更新了,后来因为另外一个项目中的 PR 引用到 timeago.js 项目,所以决定好好做一做,并推广一下,并陆续增加修改如下东西:
- 增加
实时更新方法 render
,可以选择一些节点实时更新和计算; - 完善
Testcase
,使用travis CI; - 申请
域名 timeago.org
,后来因为这个域名和其他项目产生了一些不愉快,不过无所谓,我很大条; - 更新优化
本地化 locale
文件的格式; - 新开一个 issue 专门记录 locale 的 pr;
然后将域名 timeago.org 发到 Hack New上,然后就是域名被老外转到reddit,并且关于创造更小的轮子,依赖jQuery这些问题引起了一些争论,再然后就过了一天,就上了 Github 的 Trending 总榜,目前已经在榜上 4 天了。就在这次天内,star 数量瞬间达到 1000 +,自己还是很激动的。
说说自己的感想吧?
- 如果真的想好好做一个项目,还是申请一个
合适的域名
吧,这样可能会给人更加专业,更加重视的感觉; - 老外真的特别喜欢发 pr 和 issue,可能是国内程序员的时间被商人完全榨干了;
- 保证项目有
完善的测试
,travis CI集成起来其实非常简单; 项目特色
,比如timeago.js特色就是tiny(1.75 kb完成其他项目依赖 jQ 的事情),并且在多个 issue 中要求 pr 一定要保证代码的简洁;PR 规范
,比如 timeago.js 中的主要 pr 来源于本地化语言的翻译,所以我会专门开一个issue来展现需要 pr 哪些语言,然后大家一目了然,可以增加大家 pr 的积极性;
做好这些之后,就可以到一些技术论坛发发文章,博客了,具体发哪些位置呢?
Hack New、开发者头条、V2ex、OSChina、segmentfault、极客头条
等等。我对国外技术站点不是很了解,仅仅发了 Hack New。
然后就是等着其他开发人员给你提意见、建议,然后积极响应和修改吧。
到处都能看到,推广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 的时候,还贡献过代码