npm官方网的模块都是第三方模块
全局模块和本地模块哪一个是第三方模块?
答: 都属于第三方模块 因为他们都是从npm网站下载的第三方模块又分为 全局模块和本地模块
安装与卸载第三方模块的方法:
1.初始化
安装本地模块 需要使用npm工具初始化
npm init -y 是直接全部 yes 同意
npm init 输入修改的值 一路回车下去 知道生成
初始化完成后 项目中会生成package.json的文件
2.下载第三方模块
npm install 模块名(包名)
简写 npm i 模块名(包名)
一次性安装多个模块 npm i 模块名 模块名 模块名...
2.1 卸载模块
npm uninstall 模块名
npm un 模块名
npm un 模块名 模块名 模块名...
3.本地模块的说明
下载安装的模块 存放在当前文件夹的 node_modules 文件夹中
同时还会生成一个记录下载的文件 package-lock.json文件
下载的模块 在哪里可以使用
1.在当前文件夹
2.在当前文件夹的子文件夹
3.在当前文件夹的子文件夹的子文件夹
4.在当前文件夹的.........
换句话说 当查找一个模块的时候 会在当前文件夹的 node_modules 文件夹查找 如果找不到 就去上层文件夹的 node_modules 文件夹中查找...依次类推
重要: 代码文件夹不能有中文,代码文件夹不能和模块名同名。
4.怎样使用第三方模块
和使用内置模块一样 需要使用 require 加载模块
调用模块提供的方法完成工作
5. package.json文件
初始化npm 创建package.json文件
main:
main字段指定了模块的入口文件
dependencies 依赖(复数)
dependencies指定了当前项目所依赖(需要)的包 使用npm i 可以安装所有的依赖
5.1 版本号 比如 jQuery@3.3.1
大版本 次要版本 小版本
小版本: 当项目在进行了局部修改或bug修正时 修正版本号加1
次要版本: 当项目在原有的基础上增加了部分功能时 主版本号不变 子版本号加1
大版本: 当项目在进行了重大修改或局部修改累积较多 而导致项目整体发生全局变化时 主版本号加1
5.2 script作用
script指定了运行脚本命令的npm 命令行缩写 比如 start指定了 npm run start 时 所要执行的命令
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "npm init -y"
}
5.3 运行scripts
npm run test
npm run start
npm start
5.4 依赖的作用
记录项目必须的包
发送给别人的时候,不需要发送比较大的 node_modules 文件夹 只需要发送给别人 package.json即可
此时执行 npm install 即可安装所有的包
6. require的加载机制
1.判断缓存中有没有 如果有 使用缓存中的内容
2.缓存中没有 那么表示第一次加载 加载完会缓存
3.判断模块名有没有带路径
4.模块名中 有路径 加载 自定义模块(自己写的文件) const xx = require('./xx')
4.1优先加载同名文件 加载一个叫做xx的文件
4.2再次加载js文件 加载xx.js文件
4.3再次加载json文件 加载xx.json文件
4.4最后加载node文件 加载xx.node文件
4.5如果上述文件都没有 则报错"Cannot find module './xx'"
5.模块名 <b>没有路径 优先加载核心模块 如果没有核心模块 则加载第三方模块</b>
6.加载第三方模块的查找方式 优先在当前文件夹的node_modules文件里面查找第三方模块
没有就去往上一级寻找
7.全局模块和本地模块的差异
全局安装的模块 不能通过 require() 加载使用
全局安装的模块 一般都是命令或者工具
8.全局模块和本地模块的对比
本地模块,在安装之前,必须先初始化;全局安装的模块不需要初始化。
