npm (node pakage manger)
是随同 NodeJS
一起安装的包管理工具。方便我们安装依赖包等操作。
什么是 npm
npm (node pakage manger)
是随同 NodeJS
一起安装的包管理工具。简单的来说就是安装 Node
开发的时需要使用第三方的依赖包,这些第三方的包就放在 npm
服务器上。
常见的使用场景有以下几种:
- 允许用户从
npm
服务器下载别人编写的第三方包到本地使用。 - 允许用户从
npm
服务器下载并安装别人编写的命令行程序到本地使用。 - 允许用户将自己编写的包或命令行程序上传到
npm
服务器供别人使用。
安装 Node.js
以及 npm
由于 Node.js
中已经集成了 npm
,且npm
的运行需要 node
环境,所以我们只要下载 Node.js
就可以了。
Node.js
直接从官网上下载:node.js官网
Tips:
Node.js
选择最新版安装即可,最好是选择LTS
版本( 长期支持版 )
安装后可以测试 Node
和 npm
是否已经安装成功,分别在命令行中输入: node -v
和 npm -v
即可:
$ node -v
v12.13.1
同样可以输入 npm -v
来测试 npm
是否成功安装:
$ npm -v
6.12.1
Tips: 至此,
npm
就已经安装好了!
package.json 文件
提到 node
项目有一个不得不提的就是 package.json
文件。每个node
项目的根目录下面,一般都有一个 package.json
文件,该文件定义了这个项目所需要的各种模块,以及项目的配置信息(比如 名称、版本、许可证 等元数据)。
package.json
文件内部就是一个 JSON
对象,该对象的每一个成员就是当前项目的一项设置。比如 name
就是项目名称,version
是版本。当然,这些属性都是自己定义的。
我们先来大概的看一下一个仅仅初始化后的 package.json
文件是什么样子:
{
"name": "nodeDemo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
大概的解释一下当前各个属性的含义:
-
"name"
: 当前项目的名称; -
"version"
: 项目版本号,自己定义的; -
"description"
: 对项目的描述,后面的属性值也是自己写的;比如:"description": "这是我的node项目"
; -
"main"
: 入口文件,项目中的主函数; -
scripts
: 指定了运行脚本命令的npm
命令行缩写,比如: 想要指定运行该文件的start
的简写 :npm run start
就可以; -
"keywords"
: 该项目的关键字说明; -
"author"
: 项目作者名字; -
"license"
: 许可证。
Tips: package.json 文件就是项目的说明书,拿到这个项目就知道这个项目的大致信息。
后面其实在自己安装了第三包的时候也可以记录自己所安装过的包,别人在拿到这个项目的时候就可以使用 npm install 安装所有需要的依赖包,非常方便。
生成 package.json 文件
package.json
文件可以手工编写,也可以使用 npm init
命令生成:
$ npm init
然后就可以使用 npm install <包名> --save
安装包,并且包信息会保存在 package.json
文件的 dependencies
字段中。
比如我们安装了 jquery
包:
$ npm install jquery --save
安装完成后就可以在 package.json
文件中看到 "dependencies"
字段,并且保存了我们下载的 jquery
包信息:
{
"name": "nodedemo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"jquery": "^3.5.1"
}
}
npm常用的命令
1. 安装包
安装可以分为全局安装和当前目录下进行安装。
假如我们已经创建了一个文件 nodeDemo
,并且生成过了 package.json
文件。
1、直接安装在当前目录
$ npm install jquery
以上命令会在当前项目中安装 jquery
包,但是不保存在 package.json
文件中,但是我们建议保存在 jquery.json
文件中,一是为了说明该项目用到了哪些包,二是方便别人通过 package.json
文件安装你所需要的包,从而可以运行这个项目。
所有一般都要加上 --save
命令:
$ npm install jquery --save
2、全局安装:
全局安装可能将包安装在自己计算机上的根目录下,也可能被安装在 Node
的安装目录下,所以一旦是全局安装后,所有的项目都可以使用该包,无须再重复下载。
只要在命令后加上 --global
或者简写 -g
即可:
# 全局安装jquery框架
$ npm install -g jquery --save
npm install 的简写为 npm i;
--save 的简写为 -S (大写 S )
--global 的简写为 -g
2. 卸载包
可以安装就可以卸载。使用的命令是 npm uninstall <包名>
比如卸载 jquery
包:
$ npm uninstall jquery
虽然这个命令实际项目中已经移除了 jquery
,但是在 package.json
的 "dependencies"
字段中还没有删除包的信息,(实际默认的后缀是--no-save
,也就是在 package.json
中不删除这个包的保存信息),这会对其他的人造成误解,以为需要这个包。所以我们就需要同时删除 "dependencies"
字段中对这个包的描述。
直接加上 --save
或者简写 -S
:
npm uninstall jquery --save
uninstall 的简写为 un;
--save 的简写为 -S (大写 S )
3. 更新包
各种第三方的包都会不定时的更新,所以我们在项目中也可以随时更新包,获取依赖包的最新的版本。
使用的命令是 npm update <包名>
比如我们更新之前下载的 jquery
版本。
$ npm update jquery
4. 查看所有下载过的包
我们可以在package.json
中的 dependencies
字段中查看所有安装的包也可以使用 npm list
命令就可以查看所有安装过的包:
$ npm list
-- jquery@3.5.1
`-- vue@2.6.11
可以看到我们安装了 jquery
和 vue
两个模块。
list 可以简写为 ls
5. 查看命令帮助
npm help
查看某条命令的详细帮助。
命令:
$ npm help <command>
使用这条命令会调用浏览器跳出一个页面介绍关于该命令的语法详细说明 :
还有一个命令并不会跳出浏览器提示页面,只会在当前命令行工具显示某个命令的用法,就是 npm <command> --help
。
例如,我们要查看 install
怎么用:
$ npm install --help
npm install (with no args, in package dir)
npm install [<@scope>/]<pkg>
npm install [<@scope>/]<pkg>@<tag>
npm install [<@scope>/]<pkg>@<version>
npm install [<@scope>/]<pkg>@<version range>
npm install <folder>
npm install <tarball file>
npm install <tarball url>
npm install <git:// url>
npm install <github username>/<github project>
aliases: i, isntall, add
common options: [--save-prod|--save-dev|--save-optional] [--save-exact] [--no-save]
6.npm 配置文件
可以通过命令的方式对 npm
进行配置。命令: npm config <command>
。
该命令的具体使用方法:
$ npm config --help //这里就用到了上面的命令
npm config set <key> <value>
npm config get [<key>]
npm config delete <key>
npm config list [--json]
npm config edit
npm set <key> <value>
npm get [<key>]
可以使用 npm config list
查看简要配置:
; cli configs
metrics-registry = "https://registry.npm.taobao.org/"
scope = ""
user-agent = "npm/6.12.1 node/v12.13.1 win32 x64"
; userconfig C:\Users\CXF\.npmrc
registry = "https://registry.npm.taobao.org/"
; builtin config undefined
prefix = "C:\\Users\\CXF\\AppData\\Roaming\\npm"
; node bin location = D:\nodeJs\node.exe
; cwd = C:\Users\CXF\Desktop\nodeDemo
; HOME = C:\Users\CXF
; "npm config ls -l" to show all defaults.
- 修改为淘宝镜像源
由于npm
服务器在国外,所以访问的速度很慢,主要体现在安装一些包(模块)的时候,有可能会经常安装失败,这里我们可以将配置字段registry
指向淘宝的npm
镜像源。
更改方法就是:
以后的命令都可以使用$ npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm
代替npm
。$ cnpm install [name]
npm
常用的命令就这么多,以后如果需要其他的命令,查看官方文档即可。