认识node.js与npm

网上的 npm 教程主要都在讲怎么安装、配置和使用 npm,却不告诉新人「为什么要使用 npm」。今天我就来讲讲这个话题。

本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ??。

社区

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

社区的意思是:拥有共同职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作。虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站。

前端程序员也有社区,世界上最大的前端社区应该就是 GitHub 了。前端通过 GitHub 来

  1. 分享源代码(线上代码仓库)
  2. 讨论问题(Issue 列表)
  3. 收集学习资源和常去的网站(比如我收集的优质中文前端博客

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

共享代码

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

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

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

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

麻烦

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

  1. 去 jQuery 官网下载 jQuery
  2. 去 BootStrap 官网下载 BootStrap
  3. 去 Underscore 官网下载 Underscore
  4. ……

有些程序员就受不鸟了,一个拥有三大美德的程序员 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 来分享代码已经成了前端的标配。

后续

Node.js 目前由 Ryan Dahl 当时所在的公司 joyent 继续开发。Ryan Dahl 现在已经去研究 AI 和机器学习了,并且他把 Node.js 的维护权交给了 Isaaz。(我是不是也应该去研究 AI 和机器学习啊教练)

而 Isaaz 维护了一段时间后,辞职了,成立了一个公司专门维护 npm 的 registry,公司名叫做 npm 股份有限公司……谁说开源不能赚钱的~

社区的力量

回顾前端的发展是你会发现,都是社区里的某个人,发布了一份代码,最终影响前端几年的走向。比如 jQuery,比如 Node.js,比如 npm。(其实其他语言也是这样的)

所以,社区的力量是巨大的。

原文链接:https://zhuanlan.zhihu.com/p/24357770

原文地址:https://www.cnblogs.com/vole/p/12228730.html

时间: 2024-10-07 14:08:34

认识node.js与npm的相关文章

【随笔】node.js + npm的安装

需要用到node.js和npm,所以来安装下. 在网上找了找教程,好多都是分开装的,各种麻烦各种事,最后还是在node.js官网里下载解决了.记录一下. 如果安装在当前环境,直接点击install会自动检测系统来下载,否则就点击download,根据需要下载. 由于我是安装在虚拟机下的debian系统里,所以我选择了下载源码自己编译. 点击下载node-v0.10.33.tar.gz 然后将其拷贝到虚拟机的系统里,解压 tar -zvxf node-v0.10.33.tar.gz cd node

[Cubieboard] 在Cubieboard上安装Node.js和npm

你有两个选择可以实现在Cubieboard上安装NodeJS,下载别人已经编译完成适用于Cubieboard的NodeJS二进制包,或者自己下载源码自行在Cubieboard上进行编译. 使用编译完成的二进制包 在这里下载适用于ARM架构的Node.js,如果在Cubieboard社区找不到相关资源,可以在RaspberryPi社区寻找相近的资源.例如在<Node.js installation for Raspberry Pi>一文中提供了最新的适用于RaspberryPi的Node.js可

node.js的npm的安装

本来不打算介绍node.js的npm的安装,但是发现node.js一些包的管理是通过npm来实现,还是要简单介绍一下npm. 1.npm是什么 npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 2.npm的安装(windows) [1]我们要先配置npm的全局模块的存放路径以及cache的路径,例如我希望将以上两个文件夹放在NodeJS的主目录下,便在NodeJs下建立"nod

linux上安装node.js ,npm,与karma--angularJS环境搭建

安装nodejs   搭建依赖环境 首先安装g++编译器与git,在终端输入如下命令 sudo apt-get install g++ curl libssl-dev apache2-utils sudo apt-get install git-core git如果已经安装则不需要再安装了. 2. 安装node.js 直接输入命令sudo apt-get install nodejs 安装的是0.6版本的,这个会出现问题,导致接下来安装js测试工具karma,出现问题. 所以用下载安装的方式,去

解决最近windows版本Node.js中npm出现的“Error: ENOENT, stat &#39;C:\Users\UserName\AppData\Roaming\npm”的问题

(转载请注明出处,from www.cnblogs.com/xdxer) 问题可能如下所示 解决方案: 在 'C:\Users\UserName\AppData\Roaming\‘ 下手动的增加一个文件夹npm . 然后问题就解决了. 解决最近windows版本Node.js中npm出现的"Error: ENOENT, stat 'C:\Users\UserName\AppData\Roaming\npm"的问题

Node.js、npm和一些前端知识解惑

对以往经历过原生App开发.当前主要做后端开发的我这样一个童鞋来说,不仅觉得Web前端布局繁杂,并且对其技术体系了解不深,人说当今是大前端时代,微信推出小程序后我也开始接触到相关的开发,现在很多开发框架也引入了数据绑定的概念,类似的如vue.js.一直以来对Node.js也有很多疑问,在此记录个解惑笔记. Node.js 和 npm [官网关于Node.js的描述] Node.js? is a JavaScript runtime built on Chrome's V8 JavaScript

node.js和npm离线安装

离线安装node.js和npm 1.下载官方安装包并拷贝到离线机器上. 官方下载地址:https://nodejs.org/en/download/ 2.解压文件: tar-xJf node-v8.9.4-linux-x64.tar.xz 2.放到相应目录例如/opt/ sudo mvnode-v8.9.4-linux-x64 /opt/ 3.建立文件链接使npm和node命令到系统命令 sudo ln -s /opt/node-v8.9.4-linux-x64/bin/node /usr/lo

node.js 和 npm/cnpm/nrm 的安装

node.js 和 npm/cnpm/nrm 的安装 安装 node.js.去 官网 下载,下载 LTS 版本的.安装时一路点确定,不要改动任何设置. 在 git-bash 或是 cmd 下,输入 node -v,查看 node 的版本,检验 node 是否安装成功.然后输入 npm -v,查看 npm 的版本. node.js 内置了 npm. 去 淘宝 NPM 镜像官网,在"使用说明"一栏下复制这一句 1 npm install -g cnpm --registry=https:/

SharePoint Online 开发篇:node.js和npm介绍和安装部署

Blog链接:https://blog.51cto.com/13969817 过去的几年中,出现的最重要的开发平台是Node.js和基于npm的开发,SharePoint Framework是这种开发方法的一个示例,本文我们来了解下Node.js.npm和Node Package Manager 是什么? Node.js,是一个建立在Google Chrome JavaScript的引擎(V8引擎)上的服务器端平台.JavaScript引擎的性能已经提高了很多,取决于你在做什么,事实上,它们的性

Mac环境下安装node.js、npm、express

一:node.js安转 方法一:下载node.js for Mac 地址: http://nodejs.org/download/ 直接下载 pkg的,双击安装,一路点next,很容易就搞定了. 安装完会提醒注意 node和npm的路径是 /usr/local/bin. 方法二:用Homebrew安装 1.安装Homebrew Homebrew的安装非常简单,打开终端复制.粘贴以下命令,回车,搞定. ruby -e "$(curl -fsSL https://raw.githubusercont