npm 是随 Node.js 一起安装的包管理工具,它的一个很重要的作用就是:将开发者从繁琐的包管理工作中解放出来,使开发者更加专注于功能的开发。
安装/更新
npm 不需要单独安装,在安装 Node 时,会连带一起安装 npm。但 Node 附带的 npm 可能不是最新版本,需要运行 npm install npm@latest -g
更新到最新版本。因在国内 访问、下载 npm 包太慢,可设置淘宝镜像。
- 设置淘宝镜像
npm i -g cnpm --registry=https://registry.npm.taobao.org
npm config get registry
查看镜像是否配置成功
- 更新最新版本
npm i npm@latest -g
npm 使用
npm init
npm init
初始化生成一个新的 package.json
。它会向用户提一系列 配置问题。使用参数 -f(force)
,-y(yes)
,则跳过提问阶段,用默认变量 直接生成 package.json
npm set
npm config list -l
,查看 npm 配置信息1
2
3
4
5
6
7
8
9
10
11
12
13npm config list -l
; cli configs
long = true
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.4.1 node/v8.14.0 win32 x64"
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "C:\\Users\\14335\\.npm-init.js"
init-version = "1.0.0"npm set
用来设置 npm 的配置信息,这些信息会存放在主用户目录的~/.npmrc
文件。1
2
3
4
5
6
7
8npm set init-author-email "1433539514@qq.com"
npm set init-author-name "better-jiang"
npm set init-license 'MIT'
cat ~/.npmrc
init-author-email=1433539514@qq.com
init-author-name=better-jiang
init-license=MITnpm set
设置之后,再npm init
,package.json
中作者姓名、邮件、许可就会自动写入预设的值。
npm info
npm info
命令查看模块的具体信息
1 | npm info vue |
npm search
npm search
命令在 npm 仓库 搜索相关内容
1 | npm search vue |
npm list
npm list
以树形结构列出当前项目已安装的所有模块,以及它们的依赖npm list -global
, 列出全局安装的模块npm list vue
, 列出指定模块npm list -prod
,dependencies
中的模块 依赖树npm list -dev
,devDependencies
的模块 依赖树
npm install
- 本地 / 全局 安装
默认情况下,npm
会从 http://npmjs.org 搜索或下载包,并将包安装到当前目录的node_modules
子目录下。- 本地安装,是指将一个模块下载到当前目录的
node_modules
子目录,然后只有在项目目录中,才能调用该模块
- 本地安装,是指将一个模块下载到当前目录的
- 全局安装,一般来讲,只适用于工具模块,比如webpack,gulp,eslint。
| 模式 | require 引入使用 | 注册PATH |
| ——– | —————- | ——– | |
| 本地模式 | 是 | 否 |
| 全局模式 | 否 | 是 |
注意⚠️:安装之前,npm install
会先检查,node_modules目录是否已经存在指定模块,如果存在,就不重新安装了,即使远程仓库已经有一个新版本。
如果希望,不过是否安装过,都要强制重新安装,可是有-f
或--force
参数
1 | npm install <package name> --force |
- 安装不同版本
1
2
3
4
5npm install vue-router@2.8.1 // 2.8.1 版本
npm install vue-router@latest // 最新版本
npm install vue-router@^2.7.0 // 2.7.0及以后的版本- 版本范围
- version, 必须是准确版本号
- >version, 大于指定版本号
- >=version,大于等于版本号
- <version, 小于版本号
- <=version, 小于等于版本号
- ~version, 约等于办本号
- ^version,最小的版本号,向后兼容
- 1.2.X, 1.2这个大版本,1.2.0,2.2.4,etc, but no 1.3.0
- version1 - version2, >=version1 <=version2
- 版本范围
- 依赖类型(dependencies, devDependencies)
- dependencies 依赖,是指该项目所依赖的js模块,当他人引用此包时,该依赖下的模块也会被下载
- devDependencies 依赖,只是在开发环境中需要用到的,在他人引用时不会被下载。
npm install
,默认会下载安装dependencies和devDependencies中的所有模块,如果使用--production
参数,只会下载安装 dependencies下的模块npm run
npm 不仅可以用于模块管理,还可以执行脚本。package.json
文件中有一个scripts
字段,可用于指定脚本命令,供npm直接调用。- scripts, 就是一些脚本代码,可以通过
npm run script-key
来调用,npm run
是其简写。npm run
,不加参数,直接运行,会列出package.json
中所有可以执行的脚本命令。- 运行
bash脚本
在写scripts属性中的命令,也可以在node_modules/.bin
目录中直接写成bash脚本npm bin
npm bin
命令显示当前项目的,Node模块的可执行脚本所在的目录(即.bin
目录)npm root
npm root [-g]
,查看【全局的】包的安装路径常用命令
1
2
3
4
5
6
7
8
9npm help // 查看npm 命令列表
npm -l // 查看 npm命令的简单用法
npm version // 查看npm node 等版本
npm help [command] // 查看某命令 详细用法
npm list --depth=0 [-g] // 查看[全局]本地安装的包
npm view <package name> // 查看指定包的信息
npm search [search key] // 搜索相关的npm包
npm update [-g] [package name] // 升级当前项目指定模块
npm config list // 查看配置信息
- scripts, 就是一些脚本代码,可以通过