2022-09-28 02:28:33 +08:00
|
|
|
npm 备忘清单
|
|
|
|
===
|
|
|
|
|
|
|
|
这个 npm 快速参考备忘单显示了它的常用命令使用清单。
|
|
|
|
|
|
|
|
常用命令
|
|
|
|
----
|
2022-10-05 15:55:33 +08:00
|
|
|
<!--rehype:body-class=cols-2-->
|
2022-09-28 02:28:33 +08:00
|
|
|
|
|
|
|
### 包管理
|
|
|
|
|
2022-10-05 15:55:33 +08:00
|
|
|
| 命令 | 描述 |
|
|
|
|
| --- | --- |
|
|
|
|
| `npm i` | `npm install`的别名 |
|
|
|
|
| `npm install` | 安装 package.json 中的所有内容 |
|
|
|
|
| `npm install --production` | 安装 package.json 中的所有内容,除了 devDependecies |
|
|
|
|
| `npm install lodash` | 安装一个包 |
|
|
|
|
| `npm install --save-dev lodash` | 安装为 devDependency |
|
|
|
|
| `npm install --save-exact lodash` | 准确安装 |
|
|
|
|
| `npm install @scope/package-name` | 安装一个作用域的公共包 |
|
|
|
|
| `npm install <package_name>@<tag>` | 使用 dist-tags 安装包 |
|
|
|
|
| `npm install -g <package_name>` | 全局安装包 |
|
|
|
|
| `npm uninstall <package_name>` | 卸载包 |
|
2022-09-28 02:28:33 +08:00
|
|
|
|
|
|
|
`--save` 是 npm@5 的默认值。 以前,使用不带 `--save` 的 `npm install` 不会更新 package.json。
|
|
|
|
|
|
|
|
### 安装名称
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
| --- | --- |
|
|
|
|
| `npm i sax` | NPM 包 |
|
|
|
|
| `npm i sax@latest` | 指定标签“最新” |
|
|
|
|
| `npm i sax@3.0.0` | 指定版本 `3.0.0` |
|
|
|
|
| `npm i sax@">=1 <2.0"` | 指定版本范围 |
|
|
|
|
| `npm i @org/sax` | 范围内的 NPM 包 |
|
|
|
|
| `npm i user/repo` | GitHub |
|
|
|
|
| `npm i user/repo#master` | GitHub |
|
|
|
|
| `npm i github:user/repo` | GitHub |
|
|
|
|
| `npm i gitlab:user/repo` | GitLab |
|
|
|
|
| `npm i /path/to/repo` | 绝对路径 |
|
|
|
|
| `npm i ./archive.tgz` | 压缩包 |
|
|
|
|
| `npm i https://site.com/archive.tgz` | 通过 HTTP 压缩包 |
|
|
|
|
|
|
|
|
### 清单
|
|
|
|
|
|
|
|
| 命令 | 描述 |
|
|
|
|
| --- | --- |
|
|
|
|
| `npm list` | 列出此软件中所有依赖项的已安装版本 |
|
|
|
|
| `npm list -g --depth 0` | 列出所有全局安装包的安装版本 |
|
|
|
|
| `npm view` | 列出此软件中所有依赖项的最新版本 |
|
|
|
|
| `npm outdated` | 仅列出此软件中已过时的依赖项 |
|
|
|
|
|
|
|
|
### 更新
|
|
|
|
|
2022-10-05 15:55:33 +08:00
|
|
|
| 命令 | 描述 |
|
|
|
|
| --- | --- |
|
|
|
|
| `npm version <version>` | 要更改 `package.json` 中的版本号 |
|
|
|
|
| `npm update` | 更新生产包 |
|
|
|
|
| `npm update --dev` | 更新开发包 |
|
|
|
|
| `npm update -g` | 更新全局包 |
|
|
|
|
| `npm update lodash` | 更新 lodash 包 |
|
2022-09-28 02:28:33 +08:00
|
|
|
|
|
|
|
|
|
|
|
### 杂项功能
|
2022-10-05 15:55:33 +08:00
|
|
|
<!--rehype:wrap-class=row-span-2-->
|
2022-09-28 02:28:33 +08:00
|
|
|
|
|
|
|
将某人添加为所有者
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm owner add USERNAME PACKAGENAME
|
|
|
|
```
|
|
|
|
|
|
|
|
列出包
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm ls
|
|
|
|
```
|
|
|
|
|
2022-10-05 15:55:33 +08:00
|
|
|
向安装旧版本软件包的用户添加警告(弃用)
|
2022-09-28 02:28:33 +08:00
|
|
|
|
|
|
|
```bash
|
|
|
|
npm deprecate PACKAGE@"< 0.2.0" "critical bug fixed in v0.2.0"
|
|
|
|
```
|
|
|
|
|
|
|
|
更新所有包或选定的包
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm update [-g] PACKAGE
|
|
|
|
```
|
|
|
|
|
|
|
|
检查过时的包
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm outdated [PACKAGE]
|
2022-10-05 15:55:33 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
### 更改包裹可见性
|
|
|
|
|
|
|
|
将公共包设为私有
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm access restricted <package-name>
|
|
|
|
```
|
|
|
|
|
|
|
|
公开私有包
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm access restricted <package-name>
|
|
|
|
```
|
|
|
|
|
|
|
|
授予私有包访问权限
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm owner add <user> <your-package-name>
|
|
|
|
```
|
|
|
|
|
|
|
|
### 要将包转移到 npm 用户帐户
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm owner add <their-username> <package-name>
|
|
|
|
# 新维护者接受邀请
|
|
|
|
npm owner rm <your-username> <package-name>
|
|
|
|
```
|
|
|
|
|
|
|
|
写入启用了双因素身份验证
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm owner add <their-username> <package-name> --otp=123456
|
|
|
|
```
|
|
|
|
|
|
|
|
### 取消发布包
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm unpublish <package-name> -f
|
|
|
|
# 取消指定版本
|
|
|
|
npm unpublish <package-name>@<version>
|
|
|
|
```
|
|
|
|
|
|
|
|
注意:如果您取消发布整个包,则必须在 24 小时后才能发布该包的任何新版本。
|
|
|
|
|
|
|
|
配置
|
|
|
|
---
|
|
|
|
|
|
|
|
### .npmrc
|
|
|
|
|
|
|
|
:- | :-
|
|
|
|
:- | :-
|
|
|
|
`/path/to/project/.npmrc` | 每个项目的配置文件
|
|
|
|
`~/.npmrc` | 每个用户的配置文件
|
|
|
|
`$PREFIX/etc/npmrc` | 全局配置文件
|
|
|
|
`/path/to/npm/npmrc` | npm 内置配置文件
|
|
|
|
|
|
|
|
|
|
|
|
### 配置内容
|
|
|
|
<!--rehype:wrap-class=col-span-2-->
|
|
|
|
|
|
|
|
```ini
|
|
|
|
# last modified: 01 Jan 2016
|
|
|
|
; Set a new registry for a scoped package
|
|
|
|
@myscope:registry=https://mycustomregistry.example.org
|
|
|
|
```
|
|
|
|
|
|
|
|
注释使用 `#`, `;` 放置到一行的开头。`.npmrc` 文件由指定此注释语法的 [`npm/ini`](https://github.com/npm/ini) 解析
|
|
|
|
|
|
|
|
### `.npmignore`
|
|
|
|
|
|
|
|
将下面内容存放到 `.npmignore` 文件中,放置在项目的根目录中。
|
|
|
|
|
|
|
|
```gitignore
|
|
|
|
.git
|
|
|
|
.svn
|
|
|
|
# 忽略 .swp 后缀的文件
|
|
|
|
.*.swp
|
|
|
|
/logs/*
|
|
|
|
|
|
|
|
# “!” 意思是不要忽视
|
|
|
|
!logs/.gitkeep
|
|
|
|
```
|
|
|
|
|
|
|
|
`.npmignore` 文件就像 [`.gitignore`](./git.md#忽略文件) 一样工作。它不能覆盖 `package.json#files` 字段。
|
|
|
|
|
|
|
|
### 中国镜像站安装
|
|
|
|
<!--rehype:wrap-class=col-span-2-->
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ npm install -g <package-name> --registry=https://registry.npmmirror.com
|
|
|
|
```
|
|
|
|
|
|
|
|
将配置放置在 `.npmrc` 配置文件中。
|
|
|
|
|
|
|
|
```ini
|
|
|
|
registry=https://registry.npmmirror.com
|
|
|
|
```
|
|
|
|
|
|
|
|
或者配置到 `package.json#publishConfig` 字段上
|
|
|
|
|
|
|
|
```json
|
|
|
|
"publishConfig":{
|
|
|
|
"registry": "https://registry.npmmirror.com"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
请参阅:[npmmirror 中国镜像站](https://npmmirror.com/)
|