我们在使用node时会经常下载node_modules和配置package.json文件,今天刚好学习到了其中原理,所以写下来和大家分享。
一、npm
1. npm网站
用来搜索第三方包,或者上传第三方包
npm网站https://www.npmjs.com.cn/
2. npm命令行工具
只要安装了node,则安装了npm
但是npm也有版本的概念
npm命令行工具https://www.npmjs.com/search?q=%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7
a.查看npm版本信息
npm --version // 查看npm版本信息
b. 升级npm
npm install --global npm //自己升级自己
解决npm墙的问题
因为npm是国外的,所以使用起来则会缓慢,所以可以使用国内的来进行下载
可以使用淘宝镜像
淘宝镜像http://npm.taobao.org/
使用方法如下:
a. 安装cnpm
npm install --global cnpm
以后使用npm时就可以将npm换成cnpm即可
b. 使用淘宝镜像的地址来下载
当下载某个包时(我已jquery为例)
npm install jquery --registry=https://registry.npm.taobao.org
将淘宝镜像加入到配置文件中
npm config set registry https://registry.npm.taobao.org
只要配置了上面的命令,则以后所有的npm install 都会默认通过淘宝镜像来下载
二、 包说明文件package.json
1.配置package.json
npm init
这个命令需要自己手动配置文件里的选项,如下图所示:
keywords 是配置搜索的关键字
2.快速生成package.json文件
npm init -y //可以快速跳过向导,快速生成package.json文件
package.json文件:
3. package.json的作用
当下载安装包时,需要在package.json文件中的dependencies中写入下载的第三方依赖包的依赖关系,当node_module文件删除时可以直接通过npm install文件配置好所有的第三方依赖包
通过–save可自动在package.json的dependencies中保存第三方依赖包的信息
npm install 包名 --save
npm i -S 包名 //简写
三、npm常用命令
npm init
npm init -y //快速生成package.json文件
npm install //一次性把dependencies选项中的依赖项全部安装==npm i
npm install --save 包名 // == npm i -S包名
npm uninstall 包名 // 只删除,如果有依赖项会保存
npm uninstall --save 包名 //将依赖项也会删除
npm help //查看使用帮助
npm 命令 --help //查看指定命令的使用帮助
四、package.json和package-lock.json
一般情况下使用
npm init -y
之后会产生package.json文件,但是在npm5之后的版本在安装包或者更新时会生成package-lock.json文件。
-
package-lock.json 保存了node_modules整个的依赖关系(版本和下载地址)
-
且npm install 速度更快,从下面这张图可以看出第一次用了11.543s,第二次用了2.613s
-
package-lock.json 用来锁定依赖包的版本号,防止下载的包自动更新或者自动升级新的版本