npm 查看所有各个版本:
npm view npm versions
安装指定版本的npm
npm install npm@x.x.x
npm是基于node包的管理工具。
在安装包之前,应该先初始化包
npm init => 会得到一个package.json文件,这个文件是项目包的描述
npm init -y => 快速初始化
package-lock.json => 用于锁定包版本和来源,保证根据package.json项目清单去npm i去
安装相关依赖包的时候是找到锁定的这些版本和来源下载地址去安装,因为这些包对于现有项目来说
是完全支持的,安装别的来源和版本就不一定了。
安装包:
npm install 包名字
npm i 包名字
npm i 包名字@版本号 =>下载指定版本号的包
删除包:不要手动去node_modules中删除
npm uninstall 包名字
安装包的指定版本,也应该先删除原有的包,再去安装想要的版本,这样package-lock.json中和package.json中才会对应是一个版本和来源,保证项目用这些包的时候更安全。这也是package-lock.json的意义所在。
本地安装和全局安装
有两种方式用来安装 npm 包:本地安装和全局安装。选用哪种方式来安装,取决于你如何使用这个包。
- 全局安装:如果你想将其作为一个命令行工具,那么你应该将其安装到全局。这种安装方式后可以让你在任何目录下使用这个命令。比如less命令,webpack命令。
- 本地安装:如果你自己的模块依赖于某个包,并通过 Node.js 的
require
加载,那么你应该选择本地安装,这种方式也是npm install
命令的默认行为。
// 全局安装,会把npm包安装到C:UsersccAppDataRoaming
pm目录下,作为命令行工具使用,在任何目录都可以使用。
npm install -g 包名;
//本地安装,会把npm包安装到当前项目的node_modules文件中,作为项目的依赖
npm install 包名;
package.json文件
package.json文件,包(项目)描述文件,用来管理组织一个包(项目),它是一个纯JSON格式的。
- 作用:描述当前项目(包)的信息,描述当前包(项目)的依赖项
- 如何生成:
npm init
或者npm init -y
- 作用描述内容
- 作为一个标准的包,必须要有
package.json
文件进行描述 - 一个项目的node_modules目录通常都会很大,不用拷贝node_modules目录,可以通过package.json文件配合
npm install
直接安装项目所有的依赖项
- 作为一个标准的包,必须要有
{
"name": "03-npm", //描述了包的名字,不能有中文
"version": "1.0.0", //描述了包的的版本信息, x.y.z 如果只是修复bug,需要更新Z位。如果是新增了功能,但是向下兼容,需要更新Y位。如果有大变动,向下不兼容,需要更新X位。
"description": "", //包的描述信息
"main": "index.js", //入口文件(模块化加载规则的时候详细的讲)
"scripts": { //配置一些脚本,在vue的时候会用到,现在体会不到
"test": "echo "Error: no test specified" && exit 1"
},
"keywords": [], //关键字(方便搜索)
"author": "", //作者的信息
"license": "ISC", //许可证,开源协议
"dependencies": { //重要,项目的依赖, 方便代码的共享 通过 npm install可以直接安装所有的依赖项
"bootstrap": "^3.3.7",
"jquery": "^3.3.1"
}
}
注意:一个合法的package.json,必须要有name和version两个属性
如果安装失败, 可以通过以下命令清除npm缓存:
npm cache clean -f // -f强制清除
npm的两个全局包:
(1)npm下载加速
nrm:只是切换下载源,安装还是用npm i xxx 命令去执行
- nrm:npm registry manager(npm仓库地址管理工具)
- 安装:
npm i -g nrm
# 带*表示当前正在使用的地址
# 查看仓库地址列表
nrm ls
# 切换仓库地址
nrm use taobao
如果是因为有残留文件导致的安装失败,使用删除残留文件,再重新进行全局安装即可
del /s /q C:UsersAdministratorAppDataRoaming
pm
rm*
(2)nodemon 自动重启
作用:监视到js文件修改后,自动重启node程序,不用再每修改一次js文件,再重新node xxx.js了,只需要保存即可。
安装:npm i -g nodemon
使用:nodemon app.js 运行node程序