文章目录
- 01、npm部分
- 02、nodemon 部分
- 03、package
- 04、yarn
- 05、模块加载机制
01、npm部分
1、什么是第三方模块: 别人写好的,具有特定功能的模块,需要下载才可以使用。
2、获取第三方模块 : npmjs.com
3、存储和分发第三方模块的仓库
4、使用npm命令行下载第三方模块:npm是随node一起安装的包管理工具,只要安装了node,就可以使用npm。
5、 npm的作用:
- 1.允许用户从npm服务器下载别人写好的第三方模块到本地使用。
- 2.允许用户从npm服务器下载别人写好的命令行程序到本地使用。
- 3.允许用户上传自己写好的第三方模块和命令行程序到npm服务器上。
6、 npm 下载模块
npm install 模块名 可以简写为 npm i 模块名
执行以上命令后,会在当前命令行所在的目录下多一个node_moduls文件夹,下载好的第三方模块就存放在这个文件夹下面。
6、 npm 卸载模块
npm uninstall 模块名
02、nodemon 部分
nodemon是一个命令行工具,用以辅助项目开发,每次修改文件都会自动重新执行该文件,不需要再手动执行。
1、 全局安装与本地安装
① 本地安装:把模块和命令行按照到当前文件夹下,只能在当前目录下使用。
第三方包/模块 是安装在本地的。
②全局安装:安装完成后,在命令行中任意目录都可以使用。
全局安装: 在安装模块时,在后面添加 -g
npm i 模块名 -g
命令行工具安装在全局,以便随时随地调用。
2、解决方法:
①window+r 输入powershell
②执行:set-ExecutionPolicy RemoteSigned
是 输入-------->Y
3、使用nrm 源管理器
(1)node的服务器是在国外的,下载是非常慢的。如果想要下载的快,可以使用国内的镜像库。
安装: npm i nrm -g
下载出现错误的解决方法:
①根据错误提示,找到cli.js,一般是
C:\Users\Administrator\AppData\Roaming\npm\node_modules\nrm\cli.js
②将第17行的数据修改为以下代码:
const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');
(2)查看可用的源 : nrm ls
(3) 切换源 : nrm use 地址名称
03、package
1、node_modules的问题
如果我们在项目中下载了很多第三方模块,那么别人拷贝你的项目时就会特别的慢。
2、 package.json
每个项目的根目录下,一般都会有一个package.json文件,定义了这个项目需要哪些模块,以及该项目的配置信息(项目名,作者,版本,许可证等)
2.1 创建package.json文件
npm init 需要填写配置信息。如果不想填写,回车、回车·······。
npm init -y 快速生成
3、 package-lock.json 用于锁定版本,防止多人开发时,使用不同的第三方包的版本。
4、package.json重要字段
- dependencies 生产环境依赖模块
- devDependencies 开发环境依赖模块
- scripts:脚本
5、 一些第三方类库只需要在开发时使用,不需要在生产环境上部署,则可以将它安装在开发环境依赖模块下。
- npm install 模块名 -D 开发环境
- npm install 模块名 -S 生成环境
{
"name": "demo", //项目名称
"version": "1.0.0", //项目版本
"description": "", //简介
"main": "index.js", //入口文件
//脚本
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "", //作者
"license": "ISC" //开源许可证
}
04、yarn
yarn也是一个包资源管理器,与npm的功能是一样的。 不过yarn的下载速度更快。
目标:干掉npm。
1、下载使用
- 用npm去下载
- npm i yarn -g
2、初始化项目:创建package.json
- yarn init
- yarn init -y 快速生成
3、
安装单个依赖: yarn add 模块名
安装项目中所有的依赖:yarn install
4、卸载依赖
- yarn remove 模块名
05、模块加载机制
1.模块名有路径,并且有后缀
通过路径,引入相关的模块。
2.当模块有路径,但是没有后缀的时候
- 2.1 会先找路径下同名的js文件。
- 2.2 再找路径下同名的文件夹,找文件夹下的index.js
- 2.3 如果文件夹下有package.json 会找文件中的main字段 入口文件。
- 2.4 如果找不到,就报错。
3.模块没有路径也没有后缀。
- 3.1 node会判断它是否为内置模块,是内置就加载
- 3.2 不为内置,则去第三方模块中查找,去node_modules中查找。