什么是npm?

npm可以让js开发者在共享代码,复用代码以及更新共享的代码上更加方便。

如果你使用JS开发够久的话,你应该有听说过npm:当一个JS开发者为了解决某个问题而编写了一些代码,其他的开发者能够使用npm来获取这些代码,从而能够方便地复用这些代码。

并且当你用了这些代码,你还可以很方便地使用npm来检查这些代码是否有了新的版本,有的话便可以选择是否更新到最新的版本。

这些能够被复用的小段代码叫做packages(包),或者也可以叫成modules(模块)。一个package仅仅只是一个文件夹,里面带有一个或者多个文件而已。其中有一个文件(package.json)是用来描述这个package的信息的。通常一个应用(比如一个网站)会依赖很多个package,并且这些package通常都不会很大(一个基本的思想就是建立一个精小的代码块用来解决一个小的问题,然后再通过这些小的代码块来解决一个更大的问题,因此这些package通常不会很大)。

这种工作方式是有很多好处的。比如有些专家针对某个问题设计出一个package,我们可以很方便地使用npm来获取这个pageage。又或者你不想使用团队之外的代码,我们也可以使用这些基于模块的开发方式来让我们团队更好地协作开发,并且自己开发的模块还能够在不同的项目中使用。

想要找到一个适合我们应用的package,我们可以在npm的网站上查找。通过这种方式,我们将可以找到很多不同类型的package和node module:最开始的时候,npm只是作为node的包管理器,因此可以找到大量能够应用在服务器端的模块。还有大量能够作为命令行使用的包。当然还可以找到很多的能够应用在浏览器端的包。

现在你应该大概知道npm是什么了吧。不过这里还需要介绍npm是如何工作的。当人在说npm的时候,可能蕴含有三种意思。 1:他们可能说的是npm这个网站,这个网站便是上面说的可以用来查找package的网站。 2:他们可能说的是npm的registry。这个registry相当于一个注册表,里面保存了大量关于人们共享的包的信息。 3:他们可能说的是npm的客户端。当开发者要分享他们代码的时候,他们会使用安装在他们电脑上的npm客户端去发布他们的代码。并且当在registry中保存有这个包的信息之后,其他开发者就能够通过使用这个npm客户端从registry来安装这个包了。同时,在npm的网站上也会生成一个专门的页面用来介绍这个包。

现在再来回答什么是npm。它是一种能够让我们复用别人代码的方式,是一种能够让我们共享代码方式,是一种能够让我们方便管理不同版本代码的方式。

链接: https://www.fly63.com/course/21_988