npm / node 是什么

153 阅读2分钟

我正在参加「掘金·启航计划」

最近在工作中,遇到一个项目,前后端代码放到了一起。在执行gradle 命令的时候,其中有很多关于npm/node 的报错。很多做后端的同学可能看到这些内容就会迷惑,遇到前端的知识就会感觉头大而没有兴趣学习。其实在我们掌握相关的概念之后,在这个基础上,一些问题就会比较容易理解了。这里我们介绍一下node 和npm 分别是什么。

什么是node

要想知道npm 是什么,我们就需要先了解什么是node。

首先我们要了解,浏览器向服务端发请求的过程,在发明出来之后就一直没有什么太大的变化,尤其其本质依旧没什么变动。浏览器向服务器发送请求,服务器收到了相关请求之后,就会开始搜寻被浏览器请求的资源。比如说其他服务器的数据、数据库中存储的数据等等。然后再加上服务端设置的一些数据处理逻辑,整理好之后,服务端就会把响应结果传回到浏览器。

我们知道,JavaScript 是前端的编程语言,运行在浏览器中。而node 就是一种通过JavaScript 来开发web 服务端的东西。简单来说,node 就是一种JavaScript 的运行环境,它可以让JavaScript 脱离浏览器来运行。 现在它最常见的应用场景就是用来跑npm。

当然node 有其特有的优点,但是不是本篇文章的重点。我们只要知道,node 就是一个JavaScript 的运行环境即可。

什么是npm

一句话来说,npm 就是一个包管理器。

有一种说法是,npm 是Node 成功的主要原因之一,因为npm 作为一个包管理器,它可以使JavaScript 开发者能快速共享各式各样的软件包。这给开发者带来了极大的便利。

另外我们需要知道的是,npm 主要是由两个两部分组成:

  1. 用于发布软件包和下载软件包的CLI(命令行界面)工具。(就相当于一个本地化的client)
  2. 托管写完的JavaScript 软件包的在线库。(类似于github 的角色)

总结

这篇文章我们主要就是从概念性方面介绍了什么是node,什么是npm,以便帮助读者在后续工作中遇到相关的开发时,可以做到“有的放矢”。