包管理工具是一种协助开发者管理软件项目中依赖包(库、模块等)的系统,它让开发、部署、维护的流程更为高效便捷,在不同的编程生态中有不同的代表。这里是JavaScript:npm(Node Package Manager)。
- 安装与依赖处理:npm 随 Node.js 一同安装,是 JavaScript 世界里最常用的包管理工具。开发者执行
npm install
命令,就能依据项目里的package.json
配置文件,把所需的第三方库,如 React、Vue 等,从 npm 官方仓库下载到本地项目的node_modules
文件夹,自动处理好各库之间复杂的嵌套依赖关系。 - 版本管理:在
package.json
里,开发者能精准锁定依赖包版本,既能防止因包的随意更新带来兼容性问题,又方便后续复现项目环境。例如指定"react": "^18.2.0"
,“^” 表示接受小版本更新 ,要是写死版本号则完全固定。
npm使用
1.前提
先在命令提示符中输入npm -v,会出现一个版本号,确保安装成功
2.初始化
文件在集成终端打开,输入npm init,创建package.json(包的配置文件,每个包必须有),注意包名必须是英文小写
也可以用npm init -y或者npm init --yes快速创建package.json
3.搜索包
命令提示符 npm s 关键字(eg:math) 或者 直接网站搜索http://www.npmjs.com
4.下载安装包
文件在集成终端打开,输入npm install或npm i 加包名 会出现node_modules文件夹和package-lock.json。
5.开发依赖和生产依赖
- 开发依赖(devDependencies)
- 用途:它们只在开发人员编码、调试阶段发挥作用,产品最终上线时,用户使用软件服务,并不需要运行这些工具。
- npm 中的配置:在 JavaScript 项目里,使用 npm 管理包时,通过在
package.json
文件中,把相应依赖添加到devDependencies
字段里。运行npm i -D
命令,就可以把对应的开发依赖包安装到项目中,比如npm i -D webpack
,webpack
用于打包前端资源,开发时不可或缺,部署时却无需运行。
- 生产依赖(dependencies)
- 用途:生产依赖关乎项目正常运行,是产品提供功能服务所必需依赖的包。例如,对于一个基于 Node.js 搭建的 Web 服务器,
express
框架就是生产依赖,没有它服务器没办法启动,没办法对外提供网页服务,用户也就没办法访问站点的各项功能。 - npm 中的配置:在
package.json
中,把依赖添加到dependencies
字段。执行npm i -S
命令,就会把相关的生产依赖包下载到项目中,例如npm i -S axios
,axios
用于前端发起 HTTP 请求,用户在前端页面交互时,需要它来拉取数据,属于保障业务运行的核心依赖。
- 用途:生产依赖关乎项目正常运行,是产品提供功能服务所必需依赖的包。例如,对于一个基于 Node.js 搭建的 Web 服务器,
6.npm全局安装
npm i -g nodemon
说明:1.全局安装的命令不受工作目录位置的影响
2.该命令的作用是自动重启node 应用程序,就不需要ctrl c来终止
3.不是所有的包都适合全局安装,只有全局类的工具才适合,可以通过查看包的官方文档来 确定安装方式。
4.可以通过npm root -g 可以查看全局安装包的位置(cmd中)
7.修改windows的执行策略
环境变量path
例如 cmd 输入qq,首先在当前文件夹去找qq的安装包(.exe 或.cmd),没有的话就在环境变量里面path列表挨个去找,没有就报错,找到了直接打开qq软件
可以在path里面加入qq的路径:复制qq文件所在路径,右键此电脑属性高级系统设置
环境变量 path
将qq的路径加到path列表里
这样在打开命令提示符,输入qq直接打开qq软件
8.安装包依赖
通过该命令可以依据package.json和package-lock.json的依赖声明安装项目依赖(因为node_modules文件夹大多数情况都不会存入版本库(本身太大了))
9.安装指定版本的包
npm i 包名@版本号
10.删除依赖
npm r 包名 卸载局部
npm r -g 包名 卸载全局
11.npm配置命令别名
{..."scripts" : {"server" : "node server.js" ,"start" : "node index.js" ,},..}
npm run servernpm run start
npm start