npm 是什么?

npm 是什么?

本文写于 2020 年 6 月 16 日

最近帮几个同学装开发环境,发现他们会各种“卡死”在 npm 安装一些包的过程中。

他们会非常纠结这个命令我明明敲的和网上差不多,为什么错了呢?

其中一个锅,我觉得改甩给 CSDN,实在是有很多错误的解决方案被放在了网站上;另一个就是其实很多人都不会告诉新人 npm 到底是什么,只是单纯的甩给他们几条命令,任其自生自灭。

要谈 npm,那必然要先说说什么是程序员的社区。

社区

“自古以来”程序员就有着社区文化。社区即为一些拥有共同职业或者相同兴趣的人们自发的组织在一起,分享信息与资源,进行合作。

那程序员的社区干些什么呢?

  1. 分享源代码;
  2. 讨论代码问题;
  3. 分享学习资源和各种好玩的网站之类。

比如最大的程序员社区就是 GitHub。加入 GitHub 之后,你就可以使用社区中的别人的开源代码和项目了(注意开源协议),同时你也可以贡献你的代码,让全世界都能看见。

但是 GitHub 才几年,之前的程序员是怎么共享代码的呢?

稍微早一点,那真的很难去让所有人加入社区,可是稍微往后一点,大家都会通过网址去共享代码

比如你想使用 jQuery,就可以使用 <script src="xxxxx"> 来在自己的网站上引入 jQuery。有了 GitHub 之后,还可以通过 clone xxxx 将代码从 GitHub 下载到本地。

但是其实还是蛮麻烦的,因为下载下来不仅要去很多的网站进行下载,而且如果有个网站挂了呢?那整个网页都会收到影响呀。

于是 Isaac Z. Schlueter 就给出了一个解决方案:用一个工具集中这些代码。之后便创建了 npm。

所谓 npm,全称就是 Node Package Manager,node 包管理器

npm 的实现思路可以这么理解:

  1. 买个服务器做仓库;
  2. 让 jQuery、Bootstrap……等将代码提交到服务器上;
  3. 如果有人想用这些库,只需要把要用的库 npm install jQuery 到本地;
  4. 库的代码就会被下载到 node_modules 目录中。

这样子被使用的代码,就叫做“包”,你可以用他下载、删除很多包,所以叫做“包管理器”。

最后解释一下这几个命令:

npm install xxx

先安装 xxx,但是这样安装,只是下载了,并没有“登记”到你的项目,必须连同版本号手动将他们添加到模块配置文件 package.json 中的依赖里。

npm install xxx -S

优化上一个操作,它会自动帮你添加到 package.json 的依赖——比如 vue、react。

npm install xxx -D

跟上一个几乎一样,区别是,这个是将包添加到开发依赖——比如 prettier(格式化代码)、babel(编译代码)。

npm install -g xxxx

将 xxxx 包,全局安装到你的电脑上。

(完)

posted @ 2020-06-16 14:14  徐航宇  阅读(950)  评论(2编辑  收藏  举报