npm
概述
- npm(node package manage)是nodejs官方所提供的包管理工具。能够管理项目中所使用的所有 第三方库(jquery bootstrap)。可以完成项目中所有第三方库的增删查。
- 对于包的理解可以认为一个包就是一个第三方库。比如jQuery就是一个包
基本使用
安装
在安装nodejs时会自动安装npm。nodejs自带的npm不一定是最新的版本。可以通过命令更新npm版本
npm install npm -g
- -g:表示全局安装,即安装后,任何目录下都可以使用npm。
可以通过
npm --version
来查看npm的版本
常用操作
npm init
:初始化项目的包管理环境。初始化之后会生成一个package.json
文件,该文件用于记录该项目用了哪些包以及对应的版本。- 在某个目录下,打开终端,执行命令:
npm init;
- 运行后会有几个选项需要选择,一路回车即可,最后输入y即可完成项目的初始化
npm list
:当前项目已经安装的第三方库(包)npm list;
npm search 包名字
:搜索远程的包仓库中是否有指定的包npm install 包名
:利用npm安装指定的包,默认安装该包的最新版本.也可以通过@版本号
安装指定的版本npm install jquery npm install jquery@3.5.1
npm uninstall 包名
:卸载某个包npm uninstall jquery
改变npm所使用的远程仓库地址
- npm存储包文件的服务器在国外,有时候会被墙,速度很慢,所以需要解决这个问题。
https://developer.aliyun.com/mirror/NPM?from=tnpm淘宝的开发团队把npm在国内做了一个镜像(也就是一个备份)。
- 安装淘宝的cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org;
#在任意目录执行都可以
#--global表示安装到全局,而非当前目录
#--global不能省略,否则不管用
npm install --global cnpm
安装包的时候把以前的npm
替换成cnpm
。
#走国外的npm服务器下载jQuery包,速度比较慢
npm install jQuery;
#使用cnpm就会通过淘宝的服务器来下载jQuery
cnpm install jQuery;
如果不想安装cnpm
又想使用淘宝的服务器来下载:
npm install jquery --registry=https://npm.taobao.org;
但是每次手动加参数就很麻烦,所以我们可以把这个选项加入到配置文件中:
npm config set registry https://npm.taobao.org;
#查看npm配置信息
npm config list;
只要经过上面的配置命令,则以后所有的npm install
都会通过淘宝的服务器来下载
package.json
每一个项目都要有一个
package.json
文件(包描述文件,就像产品的说明书一样)这个文件可以通过
npm init
自动初始化出来如果
node_modules
删除了也不用担心,只需要在控制面板中npm install
就会自动把package.json
中的dependencies
中所有的依赖项全部都下载回来。建议每个项目的根目录下都有一个
package.json
文件建议执行
npm install 包名
的时候都加上--save
选项,目的是用来保存依赖信息
package.json和package-lock.json
npm 5以前是不会有package-lock.json
这个文件
npm5以后才加入这个文件
当你安装包的时候,npm都会生成或者更新package-lock.json
这个文件
- npm5以后的版本安装都不要加
--save
参数,它会自动保存依赖信息 - 当你安装包的时候,会自动创建或者更新
package-lock.json
文件 package-lock.json
这个文件会包含node_modules
中所有包的信息(版本,下载地址。。。)- 这样的话重新
npm install
的时候速度就可以提升
- 这样的话重新
- 从文件来看,有一个
lock
称之为锁- 这个
lock
使用来锁版本的 - 如果项目依赖了
1.1.1
版本 - 如果你重新install其实会下载最细版本,而不是
1.1.1
package-lock.json
的另外一个作用就是锁定版本号,防止自动升级
- 这个