目录

Npm笔记

Nodejs和Npm的关系

名词解释

Chrome v8

Chrome提供的能把js语言编译成系统能够识别的语言的第八个版本;当然别的厂商也有不同的js编译器

Chrome v8功能

Chrome v8 能够独立运行,所以Node.js可以基于v8生成自己的运行环境;也可以在浏览器中进行js解析,因为Chrome v8 开源发展快,所以Chrome 对es6等新技术支持比较快;

Npm是什么

Npm 全称是 Node Package Manager 包管理工具

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

去 Jquery 官网下载 Jquery

去 BootStrap 官网下载 BootStrap

去 Underscore 官网下载 Underscore

……

有些程序员就受不鸟了,于是Npm就出来了,全称是 Node Package Manager 包管理工具。

这一点和Maven、Gradle十分相似,只不过Maven、Gradle是用来管理Java Jar包的,而Npm是用来管理Js的。

Npm 的实现思路和Maven、Gradle是一样的:

1、有一个远程代码仓库(registry),在里面存放所有需要被共享的js代码,每个js文件都有自己唯一标识。

2、用户想使用某个js的时候,只需引用对应的标识,js文件会自动下载下来。

Npm的两层含义
  1. Npm是一个第三方模块的托管网站,指的就是https://www.npmjs.com/;
  2. Npm 是Node的包管理工具(全名叫做Node Package Manager),在我们安装Node时候,就已经顺便也安装Npm这个管理工具;

Node.js是什么

Node.js是基于Chrome v8 引擎的js运行环境

Node.js是一个Javascript运行环境(runtime environment),不是一个js文件,实质是对Chrome V8引擎进行了封装。

Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python 等服务端语言平起平坐的脚本语言。

[1]Node.js提供替代的API,使得V8在非浏览器环境下运行得更好。V8引擎执行Javascript的速度非常快,性能非常好。

[2]Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。

Chrome浏览器和Node.js在解析javascript都使用了v8引擎:

Npm和Node.js的发展

Npm作者已经将Npm开发完成,于是发邮件通知 Jquery、Bootstrap、Underscore 作者,希望他们把 Jquery、bootstrap 、 underscore 放到Npm远程仓库,但是没有收到回应,于是Npm的发展遇到了瓶颈。

Node.js作者也将Node.js开发完成,但是 Node.js 缺少一个包管理器,于是他和 Npm 的作者一拍即合、抱团取暖,最终 Node.js 内置了 Npm。

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

总结

Npm是Node.js 内置的一套包管理工具,比如Jquery什么的,随着Node的火爆发展,Npm越来越庞大,插件越来越多

怎么理解Npm和Node的关系呢,Node.js相当于qq游戏大厅,Npm就是其中的小游戏;

Node.js和Npm的安装

Node.js的安装这里就不再多说了。Npm由于内置在Node.js中,所以就一并安装了。有时候我们只想单独安装Npm,不想安装Node.js,这个好像是不行的。

安装和卸载全局包

  1. 什么是全局的包:通过Npm install 包名 -g方式安装的包,都安装到了全局;一般全局的安装目录是 C:\Users\自己的用户文件夹\AppDataRoaming\Npm
  2. 带大家演示如何安装一个全局的包:npm install i5ting_toc -g,注意:这里的-g表示全局安装包的意思
  3. 注意:一般,只有一些工具,才有全局安装的必要性
  4. 如果要全局卸载某个包,比如要卸载i5ting toc了,直接运行’npm uniinstall i5ting_toc -g`就可以全局卸载包了!

node/npm如何查看安装过的模块或包

QuickStart

npm ls命令可以查看安装过的模块,这个命令使用的时候要注意是否为全局和注意层数。

查看当前项目的依赖模块如下:

1
npm ls --depth 0

查看全局依赖模块命令如下:

1
npm ls -g --depth 0

./1.webp

详细介绍

在命令行输入npm ls,可以查看当前文件夹下安装的模块

./2.webp

这个结果和文件夹下面的node_modules目录是对应的

./3.webp

可以看见,这个文件夹下面的2个子文件夹名字和刚才的输出结果一模一样

./4.webp

但是这个命令会将模块依赖的模块也一并输出出来,最后在一个复杂项目里面的结果会十分庞大

./5.webp

现在我们可以加上 –depth 0,来限制结果的层数

执行

1
npm ls --depth 0

可以发现复制项目的输出结果也不会太长

./6.webp

加上 -g 可以输出全局模块,也可以和–depth 0并用

执行

1
npm ls -g --depth 0

试试

./7.webp