与全世界分享你的JavaScript库

懒惰

让我们面对现实吧,开发人员都很懒(包括我自己)。Philipp Lenssen同意这句话帖子说明:

只有懒惰的程序员才会想要编写那种最终可能会取代他们的工具。懒惰,因为只有懒惰的程序员才会避免编写单调、重复的代码——从而避免冗余,这是软件维护和灵活重构的敌人。大多数情况下,这种努力所产生的工具和过程是由懒惰会加快生产速度。

作为一名出色的JavaScript开发人员,你正在构建这个每个人都在等待的令人敬畏的库,寻找一个可以帮助你避免编写单调、重复代码的工具。

验证、编译、最小化、连接等等,这些都是你在发布库之前需要做的任务。

幸运的是,这些是几乎所有编写JavaScript代码的人都需要完成的任务,这也是Ben Alman在创建时开始着手解决的问题咕哝着说

Grunt: JavaScript构建工具

咕哝着说

Grunt是一个用于JavaScript项目的基于任务的命令行构建工具,它可以方便地创建新项目,并使执行重复但必要的任务(如检测、单元测试、连接和缩小文件等)变得微不足道。

这就是Grunt的目标。它有一堆内置的任务,可以让你走得很远,并能够构建自己的插件和脚本来扩展基本功能。

要了解更多关于Grunt的介绍,请参阅本的帖子他的个人博客而且Bocoup博客

那么,现在你被卖了,你的项目在几分钟内就完全自动化了,接下来呢?现在是时候把它分发给人民了。这就是软件的意义所在,我们希望人们使用我们的产品。

Bintray + Grunt + Grunt - Bintray -deploy =纯粹的awesome

Grunt的生态系统非常庞大,而且每天都在增长。有数百个插件可供选择,您可以使用Grunt以最小的努力自动化几乎任何事情,这正是我决定要做的。

我写了一个繁重的插件它将帮助你分享和分发你的项目到Bintray,并从那里到世界各地。

通过使用Bintray,您可以通过高速CDN分发您的库,您的用户可以将他们的HTML JavaScript标签直接指向Bintray给您的URL !

有了Bintray,你知道你的图书馆是如何被消耗的。你不仅可以获得每个版本的下载量统计数据,用户还可以与你交流;评论和评价您的库;或者给你反馈。

设置

让我们使用自由民脚手架加载一个Node.js模块,稍后将分发到Bintray:

[code language= " bash "]mkdir mylib[/code]

全球安装Yeoman:

[code language= " bash "]npm install -g yo[/code]

全局安装nodejs生成器:

[code language= " bash "]npm install -g generator-nodejs[/code]

下载grunt-bintray-plugin并将其作为开发依赖保存到package.json中:

[代码语言= " bash "]npm install [/code]

一旦插件被安装,它可以在你的Gruntfile中使用这行JavaScript:

(语言=“javascript代码)
grunt.loadNpmTasks(“grunt-bintray-deploy”);
(/代码)

现在让我们配置任务来发布index.js和包。json文件到Bintray!

(语言=“javascript代码)
grunt.initConfig ({
bintrayDeploy: {
bintray: {
选择:{
用户:“bintray_user”,
apikey:“bintray_api_key”,
包裹:{
回购:“回购”,

},
文件:[{
扩展:没错,
平:没错,
Src: [" index.js ", " package.json "],
Dest: " <%= pkg.version %> ",
过滤:“isFile”
})

}})
(/代码)

现在我们准备运行我们的grunt任务:

(代码语言=“bash”)
繁重bintrayDeploy

运行bintrayDeploy:bintray (bintrayDeploy)任务
>>成功创建新包mylib。
将文件部署到“https://bintray.com/shayy/repo/mylib/0.0.1/files”
成功部署' index.js '
成功部署' package.json '

完成,没有错误。
(/代码)

就是这样,这是你的Bintray账户下的样子:
发布到Bintray

看,这是你的用户将使用的URL从一个快速CDN消费你的库:
从Bintray下载

既然一切都是自动化的,我们终于可以打个盹,让CI服务器来做这项讨厌的工作。