npm让js开发者们更容易的分享和使用代码,并且让你也能容易的修改你正在分享的代码。
如果你使用js有一段时间了,那你可能已经听说过npm:npm让js开发者们更容易的分享他们解决某些问题的代码,并且其他开发者能在他们自己的应用里重复使用这个代码。
如果你依赖的代码来自于其他开发者,npm很容易的就能检查到他们做的任何更新,并且下载这些更新。
这些可重用代码被称为包,有时候是模块。一个包就是一个目录里有一个或者多个文件,也有一个名为“package.json”带着一些这个包的元数据的文件。一个经典的应用,比如一个网站,会依赖成十上百个包。这些包经常很小。一般的方式是创建一个解决一个问题并且解决的不错的构建块。通过这些小的,被分享出来的自定义解决方案的构建快使你组成更大的。
这样有很多好处。可以让你的团队用上超出你们组织的专业知识,但是其他人在这件事上专注的。即使你不使用你组织之外的代码,使用这种基于模块的方法也能真正的帮助你的团队更好的合作,并且让多个项目重用这些代码。
可以在npm网站上找到帮助你构建你应用的包。你在查找的时候,会发现很多不同种类的包。会发现大量的模块。npm一开始作为node的包管理器,所以你可以发现大量的可以用在服务端的模块。也有大量的包增加了很多命令让你可以在命令行里使用。而在这一点上,你可以发现大量的可以使用在浏览器上的包,在前端。
现在你应该知道npm能做什么了,接下来我们讨论它是如何工作的。当人们在讨论npm的时候,他们可能在讨论三件事之一。他们可能讨论npmjs网站,或他们是在谈论registry,这是一个很大的数据库,有着大家正在分享的包的信息。或者第三件事是在讨论客户端:当开发者决定分享代码,他们使用安装在他们电脑上的npm客户端去分享代码到registry。并且一旦在registry里有这个包的入口,其他开发者就能使用他们的客户端从registry里安装这个包。这个在registry的包的入口同样映射到了网站,会有一个这个新包的专门的页面。
所以npm就是让其他开发者一个重复使用代码和分享你的代码的方式,并且很方便的管理这个代码的不同版本。