###授权许可
最后一点,使用授权许可。从技术上讲,即时你没有选择任何一种技术许可,你的代码库依然是拥有版权的,但不是每一个人都知道这一点。
我发现 ChooseALicense.com 这个网站可以让你一个不需要成为法律专家也能挑选授权许可。在挑选授权许可之后,只需要在项目的根目录下添加 LICENSE.txt 文件。
##将它打包和发布到包管理器
对一个好的代码库来说,版本是很重要的。如果你想要加入重大的变化,用户可能需要保留他们现在正在使用的版本。
Semantic Versioning 是流行的版本命名标准,或者叫它SemVer。SemVer版本包括三个数字,每一个代表不同程度的改变:重大改变,微小的改变和补丁
###在你的Git仓库加入版本和发布
如果你有一个git仓库,你可以在你的仓库添加版本数字。你可以把它想象成你的仓库的快照。我们也叫它标签 Tags 。可以通过开启终端和输入下面的文字来创造标签:
# git tag -a [version] -m [version message]
git tag -a v1.2.0 -m "Awesome Library v1.2.0"
很多类似GitHub的服务会提供关于所有版本的概览和提供它们的下载链接。
###发布一个通用仓库
####npm
许多编程语言自带有包管理器,或者是第三方包管理器。这可以允许我们下载关于这些语言的特定代码库。比如PHP的 Composer 和Ruby的 RubyGems
Node.js,一种独立的JavaScript引擎,拥有 npm ,如果你对npm不熟悉,我们有一个很好的教程 beginner’s guide 。
默认情况下,你的npm包会发布为公共包。不要害怕,你也可以发布私有包 private packages , 设置一个私有的注册 private registry , 或者根本不发布 avoid publishing .
为了发布你的包,你的项目需要有一个 package.json 文件。你可以手动或者交互问答的方式来创建。通过输入下面的代码来开始问答:
`npm init`
这个版本属性需要跟你的git标签吻合。另外,请确定有 README.md 文件。像是GitHub,npm在你的包的展示页使用它。
之后,你可以通过输入下面的代码来发布你的包:
`npm publish`
就是这样!你已经成功发布了你的npm包。
####Bower
几年前,有另一个叫做Bower的包管理器。这个包管理器,实际上不是为了特定的语言准备的,而是为了互联网准备的。你可以发现大部分是前端资源。在Bower发布你的包的关键一点是你的代码库是否跟它兼容。
如果你对Bower不熟悉,我们也有一个教程 beginner’s guide 。
跟npm一样,你也可以设置一个私有仓库 private repository 。你可以通过问答的方式避免发布。
有趣的是,在最近的一两年,很多人转为使用npm管理前端资源。近段npm包主要是跟JavaScript相关,大部分的前端资源也发布在了npm上。不管怎样,Bower仍然流行。我明确的推荐你在Bower上发布你的包。
我有提到Bower实际上是npm的一种模块,并最初是得到它的启发吗?它们的命令是很相似的,通过输入下面的代码产生 bower.json 文件:
`bower init`
跟 npm init 类似,指令是很直白的,最后,发布你的包:
`bower register awesomelib https://github.com/you/awesomelib`
像是把你的代码库放到了野外,任何人可以在他们的Node项目或者网络上使用它!
##总结
核心的产品是库文件。确定它解决了问题,容易和适合使用,你会使得你的团队或者许多开发者变得高兴。
我提到的很多任务都是自动化的,比如:运行测试,创建标签,在 package.json升级版本或者在npm或者bower重发布你的包。 这是你像Travis CI 或 Jenkins一样踏入持续集成和使用工具的开始。我之前提到的文章 article by Tim Evko 也讲述到了这点。