NPM的用处

7 篇文章 1 订阅

网上的 npm 教程主要都在讲怎么安装、配置和使用 npm ,却很少告诉新人「npm 是干什么的?」「为什么要使用 npm?」。今天我就来讲讲这个话题。本文目标读者是「不太了解 npm 的新人」,老司机请绕道。 

社区

程序员自古以来就有社区文化。社区的意思是:拥有共同职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作。虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站。 前端程序员也有社区,世界上最大的前端社区应该就是 GitHub 了。前端通过 GitHub 来分享源代码(线上代码仓库),讨论问题(Issue 列表),收集学习资源和常去的网站(比如我收集的优质中文前端博客)。加入社区最大的好处之一是,你可以使用别人贡献的代码,你也可以贡献代码给别人用。


共享代码

前端是怎么共享代码的呢?在 GitHub 还没有兴起的年代,前端是通过网址来共享代码。比如你想使用 jQuery ,那么你点击 jQuery 网站上提供的链接就可以下 jQuery ,放到自己的网站上使用 。GItHub 兴起之后,社区中也有人使用 GitHub 的下载功能。


麻烦

当一个项目依赖的代码越来越多,程序员发现这是一件很麻烦的事情:
1.去 jQuery 官网下载 jQuery
2.去 BootStrap 官网下载 BootStrap
3.去 Underscore 官网下载 Underscore
......
有些程序员就受不鸟了,一个拥有三大美德的程序员 Isaac Z. Schlueter (以下简称 Isaaz)给出了一个解决方案:用一个工具把这些代码集中到一起来管理吧!这个工具就是他用 JavaScript (运行在 Node.js 上)写的 npm,全称是 Node Package Manager。

npm的思路大概是这样的:
1.买个服务器作为代码仓库(repository),在里面放所有需要被共享的代码
2.发邮件通知 jQuery 、Bootstrap 、Underscore 的作者使用 npm publish 把代码提交到 repository 上,分别取名 jquery、bootstrap 和 underscore(注意大小写)
3.社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,然后运行 npm install ,npm 就会帮他们下载代码
4.下载完的代码出现在 node_modules 目录里,就可以随意使用了。

这些可以被使用的代码被叫做「包」(package),这就是 npm名字的由来:Node Package(包) Manager(管理器)。


发展

Isaaz 通知 jQuery 作者 John Resig,他会答应吗?这事儿不一定啊,对不对。只有社区里的人都觉得 「npm 是个宝」的时候,John Resig 才会考虑使用 npm。

那么 npm 是怎么火的呢?
npm 的发展是跟 node.js 的发展相辅相成的。node.js 是由一个在德国工作的美国程序员 Ryan Dahl 写的。他写了 node.js,但是 node.js 缺少一个包管理器,于是他和npm的作者一拍即合、抱团取暖,最终 node.js 内置了 npm。

后来的事情大家都知道,node.js 火了。随着 node.js 的火爆,大家开始用 npm 来共享 JS 代码了,于是 jQuery 作者也将 jQuery 发布到 了 npm 上。所以现在,你可以使用 npm install jquery 来下载 jQuery 代码了。现在用 npm 来分享代码已经成了前端的标配。


后续

node.js 目前由 Ryan Dahl 当时所在的公司 joyent 继续开发。Ryan Dahl 现在已经去研究 AI 和机器学习了,并且他把 node.js 的维护权交给了 Isaaz。而 Isaaz 维护了一段时间后,辞职了,成立了一个公司专门维护 npm 的 repository,公司名叫做 npm 股份有限公司......谁说开源不能赚钱的呀???


社区的力量

回顾前端的发展史你会发现,一般都是社区里的某个人,发布了一份代码,最终影响前端接下来几年的走向。比如 jQuery,比如 node.js,比如 npm,其实其它语言也是这样的,所以说,社区的力量是巨大的。



原文地址:https://www.jianshu.com/p/19e490e7f9aa
 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm是Node.js的包管理器,主要用于管理和安装Node.js模块。它具有以下主要用途: 1. 安装和管理依赖项:npm允许开发者在项目中声明所需的依赖项,并自动下载和安装这些依赖项。通过在项目根目录下创建一个package.json文件,开发者可以指定项目所需的依赖项及其版本。然后,通过运行`npm install`命令,npm会根据package.json文件自动下载并安装所有依赖项。 2. 更新和升级依赖项:npm还提供了更新和升级依赖项的功能。通过运行`npm outdated`命令,开发者可以检查项目中哪些依赖项需要更新。然后,通过运行`npm update`命令,npm会自动更新项目中的依赖项。 3. 发布和共享模块:npm允许开发者将自己编写的模块发布到npm仓库中,供其他开发者使用。通过运行`npm publish`命令,开发者可以将自己的模块发布到npm仓库中。其他开发者可以通过运行`npm install`命令来安装并使用这些模块。 4. 管理全局模块:除了管理项目依赖项外,npm还可以管理全局模块。通过在安装命令中添加`-g`选项,npm可以将模块安装到全局环境中,使其在任何项目中都可用。 5. 查看和搜索模块:npm提供了查看和搜索模块的功能。通过运行`npm view`命令,开发者可以查看某个模块的详细信息。通过运行`npm search`命令,开发者可以搜索npm仓库中的模块。 6. 配置npmnpm还提供了一系列配置选项,开发者可以使用这些选项来自定义npm的行为。通过运行`npm config`命令,开发者可以查看、设置和删除npm的配置选项。 总之,npm是一个功能强大的包管理器,可以帮助开发者轻松地管理和使用Node.js模块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值