文章目录
一、Node.js中的npm包管理工具
包
(package)就是一个目录模块
,即第三方模块,它是基于内置模块封装出来的。
npm
:就是用于管理包的工具,一般npm是与node一块安装的,不需要额外下载。
常见的使用场景有以下几种:
①允许用户从NPM服务器下载别人编写的第三方包到本地使用。
②允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
③允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以npm也一并安装好了。我们可以在cmd中使用npm -v的命令查到电脑安装的npm的版本号。
如果安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下:
c:\ npm install npm -g
Linux系统命令如下:
$ sudo npm install npm -g
我们可以在这个网站https://www.npmjs.com/(全球最大的包共享平台)里,寻找我们需要的各种包的信息。
比如express等包都可以在这里找到。
1、安装包
(1)本地安装
npm install 完整的包名称
可以简写为:
npm i 完整的包名称
(2)全局安装
npm install 完整的包名称 -g
可以简写为:
npm i 完整的包名称 -g
(3)本地安装和全局安装的区别
本地安装:
将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行npm命令的目录下生成 node_modules 目录。可以通过 require() 来引入本地安装的包。
全局安装:
被安装的模块在所有的node项目中都可以使用,将安装包放在 /usr/local 下或者你 node 的安装目录。可以直接在命令行里使用。
如果希望具备两者功能,则需要在两个地方安装它或使用 npm link。
(4)举例
如果我们想在d盘某目录下下载一个express包,方法如下:
我们可以在这个网站中看到,express包的下载命令是npm i express。接下来只要在cmd中使用cd切换到我们需要的目录下执行该代码就可以,注意:如果此时cmd在c盘下,只要输入d:就可以换盘符。
当我们使用它时,使用require(‘express’)就可以,它会自动在node_modules文件下去查找。
初次装包完成后,在项目文件夹下会多一个node_modules的文件夹和package.json的配置文件。
node_modules:此文件夹用来存放所有已安装到项目中的包,require()导入第三方包时,就是从这个目录中查找并加载包。
package.json:记录node_modules目录下的每一个包的下载信息,例如包的名字,版本号,下载地址等。
2、安装指定版本的包
默认情况下,使用npm install命令安装包的时候,会自动安装最新版本的包,如果需要安装指定版本的包,可以在包名之后,通过@符号指定具体版本,例如:
npm i express@4.17.1
3、包的语义化版本规范
包的版本号以“点分十进制”形式定义,总共有三位数字,如4.17.2
第一位数字:大版本
第二位数字:功能版本
第三位数字:Bug修复版本
版本号提升的规则:只要前面的版本号增长了,后面的版本号归零。
4、包管理配置文件package.json
用来记录与项目有关的一些配置信息,如:项目的名称、版本号、描述等,项目中都用到了哪些包,哪些包只在开发期间会用到,哪些包在开发和部署时需要用到。
5、dependencies节点
我们可以注意到,在package.json文件中,有一个dependencies节点,它专门用来记录使用npm install命令安装了哪些包。如:
6、快速创建package.json
当我们安装的包太多,每一个版本号又不同时,我们可以使用npm init -y 命令,在所处目录下生成一个package.json文件,里面会记录安装的包的信息。
如:我们在E:\js自学\module这个目录下执行npm init -y命令,那么它就会生成一个package.json文件。
npm init -y:
初始化一个package.json文件,用于记录安装的包的相关信息。
然后我们再在这个目录下下载express和mysql模块,下载完成后package.json文件就会自动更新着两个包的信息。
如果有一天我们想把自己做的项目传给别人,就不用再发送node_modules文件,只要发送package.json文件,再执行npm install命令,那么就会下载好package.json里的所有包了。
npm install:
自动安装package.json中记录的包名称以及版本号。
注意:npm init -y只能在英文的目录下成功运行,所以,项目文件夹名称一定要使用英文命名,不能出现中文和空格。
7、卸载包
npm uninstall 包的名称
此命令执行成功后,会把卸载的包,自动从package.json的dependencies节点中移除。
8、devDependencies节点
如果某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到devDependencies节点中,与之对应的,如果某些包在开发和项目上线之后都要用到,则建议把这些包记录到dependencies节点中。
将包记录到devDependencies节点中的命令如下:
npm install 包名称 --save-dev
//