1. 什么是npm?
npm 全称 Node package Manager(node 包管理器), 它的诞生是为了解决Node中第三方包共享的问题.
npm不需要单独安装,在安装Node的时候,会连带自动安装npm
npm -v 检查安装的情况
当我们谈到npm时,我们在说两个东西:
1.命令行工具,这个工具在安装node时,已经自动安装过了,不需要额外安装
2.npm网站,这是一个第三方模块的 "不花钱的模块超市", 我们可以自由地下载,上传模块.
2.不花钱的模块超市
npm网站收集了前端的各种工具,之前学习过:
JQuerymbootStrap,flexible.js,arttemplate.js,layui.js,echarts.js...
你是如何下载的?官网下载?
在一个地方下载所有的库(模块)...
3.包(package) 与模块关系
npm网站上去下载我们的需要的代码时,它们是以"包"这种结构放在npm网站上的。先来了解下包和模块的关系。
- nodejs中一个模块就是一个单独的js文件
- Node.js 中的第三方模块,又叫做包、第三方包、依赖包
- 包是多个模块的集合。一个模块的功能比较单一,所以一个包一般会包含多个模块。
- npm 管理的单位是包。类似于网站和网页的区别:一个网站一般会包含多个网页。
4.找自己需要的包
npm 公司提供了一个非常著名的搜包网站:https://www/npmjs.com/。它是全球最大的第三方包共享平台。
5.npm下载使用包
步骤:
初始化项目。npm init 如果之前已经初始化,则可以省略。
安装包。 npm install 包名。[注意:保持联网的状态哈]
引入包,使用
第一步:初始化项目
进入到项目所在的根目录下,启动小黑窗(建议:按下shift键,点击右键,在弹出的菜单中选择 “在此处打开命令行”)
输入如下命令:
npm init --yes // --与yes之间没有空格, -- 与init之间有空格 或者是 npm init -y
init命令用来在根目录下生成一个package.json文件,这个文件中记录了我们当前项目的基本信息,它是一切工作的开始
第二步:安装包
npm 这个超市中有现成的写好的代码,我们想下载来用,这个过程就是安装包,或者叫下包、装包
安装命令: npm i 包名
第三步: 使用包
当我们已经下载好一个包之后,就可以像使用核心模块一样去使用它
格式是: const 常量名 = require (‘包名’) 这个格式与引入核心模块的格式是一样的
目录文件详解:
project01
├── node_modules # 统一放置下载的包
│ └── dayjs # 某个包
├── xx.js # 业务代码, 引入dayjs来使用
├── package.json # 记录本项目的信息
└── package-lock.json # 下载包的详细信息
6.下载使用包的细节1-package.json
它一般是由npm init命令创建出来的(也可以正常被CV),它的整体内容是一个json字符串,用来对当前项目进行整体描述。可以手动修改
这个文件里面的一些属性:
name:表示这个项目的名字
version:版本号
keywords:关键字
author:作者
descrption:描述
devDependencies: 开发依赖
dependencies:生产依赖
7.下载使用包的细节2-node_modules文件夹
作用
这个文件夹中保存着我们从npm中下载来的第三方包。在使用npm install 命令时,会从npm网站下载对应的包到这个文件夹中。
下载包的逻辑
pm install 包
时,它会先把包对应的资料下载下来,如果包还有其他的依赖项,也会下载下来;如果依赖项还有依赖项,会继续下载
下载使用包整体回顾
8.下载包-修改镜像源
npm默认是从一个名为 https://registry.npmjs.org/的服务器上下包,这个服务器在国外,因此下包速度会非常慢
解决方案: 把npm的下包地址,从国外的服务器切换国内的服务器
检查当前的下包地址:
npm config get registry
把下包的地址切换为国内的淘宝服务器:
npm config set registry=https://registry.npm.taobao.org/
9.全局安装包和本地安装包
我们通过npm install 命令来安装包,具体分成两类:
全局安装:包被安装到了系统目录(一般在系统盘的node_modules中)
命令:npm install -g 包名 或者 npm install 包名 -g
辅助提示:
npm root -g //查看全局包的安装目录
npm list -g --depth 0 //查看全局安装过的包
局部安装(或者叫本地安装),包安装在当前项目的根目录下(与package.json同级)的 node_modules中。
命令: npm install 包名
全局包与本地包的区别
全局安装的包一般可提供直接执行的命令。
本地安装的包是与具体的项目有关的,我们需要在开发过程中使用这些具体的功能。
一个经验法则:
要用到该包的命令执行任务的就需要全局安装
要通过require引入使用的就需要本地安装
10.开发依赖和生产依赖
在本地安装包时,表示我们这个项目要用到这个包,换句话说,我们这个项目要想成功运行,要依赖这些个包。
但在,具体在项目进行的哪一阶段依赖于这些包呢?也有具体的差异。
本地开发 ----> 上线运行
操作
这两种依赖关系,在具体操作的过程中,有如下区别
1.保存到开发依赖(devDependencies)
npm install 包名 --save--dev //或者npm install 包名 -D
通过这种方式安装的包会出现在paceage.json文件中的 devDependencies字段中
2.保存到生产依赖(dependencies)
npm install 包名
//或者 npm install 包名 -S
//或者 npm install 包名 --save
通过这种方式安装的包会出现在package.json文件中的dependencies字段中
技巧
加了 -D: 开发依赖,这就表示这个工具包旨在开发项目时候要用,项目开发完成就不需要
不加 -D: 生产依赖,这就表示这个工具包在项目做完了之后也要用
附:npm常用命令
查看:
npm -v // 查看npm 版本
where node // 查看node的安装目录
where npm // 查看npm的安装目录
npm root -g // 查看全局包的安装目录
npm list -g --depth 0 // 查看全局安装过的包
升级 npm:
npm install npm --global // 简写成 -g
npm install npm -g
初始化package.json:
npm init -y // 或者是npm init --yes
安装第三方包:
// 安装当前目录下package.json中列出的所有的包
// 如果之前安装了包,又在package.json中手动删除依赖
// 它相当是删除包
npm install
// 全局安装
npm install 包名 -g // npm install -g 包名
// 本地安装,没有指定版本,默认安装最新的版本
npm install 包名
// 一次安装多个包,空格隔开
npm install 包名1 包名2 包名3
// 安装指定版本的包
npm install 包名@版本号
// 简写。把install简写成 i
npm i 包名
删除已安装的包:
npm uninstall 本地安装的包名
npm uninstall 全局安装的包名 -g