什么是npm及热加载服务

热加载(hot reload)服务

热加载服务使用 budo 集成。

budo 是一个 browserify 开发服务器模块,专注于增量热更新加载,LiveReload 集成(包括 CSS 注入)和其他用于快速原型设计的高级功能。

npm是什么

程序员自古以来就有社区文化:

社区的意思是:拥有共同职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作。虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站。 
前端程序员也有社区,世界上最大的前端社区应该就是 GitHub 了。前端通过 GitHub 来

分享源代码(线上代码仓库) 
讨论问题(Issue 列表) 
收集学习资源和常去的网站(比如我收集的优质中文前端博客https://github.com/FrankFang/best-chinese-front-end-blogs

加入社区最大的好处之一是,你可以使用别人贡献的代码,你也可以贡献代码给别人用。 
共享代码

前端是怎么共享代码的呢?

在 GitHub 还没有兴起的年代,前端是通过网址来共享代码

比如你想使用 jQuery,那么你点击 jQuery 网站上提供的链接就可以下载 jQuery,放到自己的网站上使用 。

GItHub 兴起之后,社区中也有人使用 GitHub 的下载功能:

麻烦

当一个网站依赖的代码越来越多,程序员发现这是一件很麻烦的事情:

去 jQuery 官网下载 jQuery 
去 BootStrap 官网下载 BootStrap 
去 Underscore 官网下载 Underscore 
……

有些程序员就受不鸟了,一个拥有三大美德的程序员 Isaac Z. Schlueter (以下简称 Isaaz)给出一个解决方案:用一个工具把这些代码集中到一起来管理吧!

这个工具就是他用 JavaScript (运行在 Node.js 上)写的 npm,全称是 Node Package Manager

具体步骤

NPM 的思路大概是这样的:

  1. 买个服务器作为代码仓库(registry),在里面放所有需要被共享的代码

  2. 发邮件通知 jQuery、Bootstrap、Underscore 作者使用 npm publish 把代码提交到 registry 上,分别取名 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 来分享代码已经成了前端的标配。

npm为JavaScript开发者提供了一个很好的分享重用的方式,同时提供一个很好的方式来更新你的代码

如果你已经使用过JavaScript,那么你可能已经听说过npm:npm为JavaScript开发者提供了一个分享代码的方式,同时也能够为开发者提供一个在他们项目中重用代码的方式

这些被重用的代码被称为包(packages),有时候也被称为模块(modules)。一个包通常包含了一个或多个文件,同时也包含了一个定义了这个包元信息的文件“package.json”。在一个应用中,例如网站会依赖成百上千个包,这些包一般来说都比较小。通常情况下开发者创建一个包用于解决一个特定的问题。

使用npm有很多益处。通过引入npm包你的项目团队能够借助其他开发者的力量解决特定的问题。即使你不使用其他开发者的代码,在你的项目中使用npm能够使你的团购很好的协同工作,同时也为代码重用提供了一个很好的方式

开发者可以通过npm官网来查找应用需要的包。在浏览官网的时候,能够发现有大量的包。npm是基于包管理的,所以开发者也能够找到很多用于服务器端的模块。也有一些包能够在命令行界面来使用命令。同时开发者还能找到很多用于前端在浏览器上使用的包。

读到这里能够大致的了解npm能够做什么,接下来让我们来了解它是怎么运作的。他人们在谈论npm的时候,一般是说的下面三种情况之一。他们可能正在讨论他们正在浏览的网页。也有可能是正在讨论其他人分享的代码仓库(这个仓库包含有很多package信息)。或者是他们正在谈论一个npm客户端,这个客户端是开发者安装在他们电脑上用于分享发布他们代码到代码仓库的地方。当包发布到代码仓库的时候,其他开发者就能够通过npm客户端来下载使用这个包。

到底npm是什么呢?npm提供了一个重用其他开发者代码的方式,npm也能够分享开发者自己的代码,同时也提供了一个便捷的方式来管理不同版本的代码

猜你喜欢

转载自blog.csdn.net/weixin_42693104/article/details/81491030