npm 备忘清单

这个 npm 快速参考备忘单显示了它的常用命令使用清单。

常用命令

包管理

命令描述
npm init -y创建 package.json 文件
npm installnpm i安装 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>卸载包

安装

命令描述
npm i saxNPM
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/repoGitHub
npm i user/repo#masterGitHub
npm i github:user/repoGitHub
npm i gitlab:user/repoGitLab
npm i /path/to/repo绝对路径
npm i ./archive.tgz压缩包
npm i https://site.com/archive.tgz通过 HTTP 压缩包

安装依赖的可用参数

  • -P, --save-prod 包将出现在您的依赖项中,这是默认值(npm v8),除非存在 -D-O
  • -D, --save-dev 包会出现在你的 devDependencies
  • -O, --save-optional 包将出现在您的 optionalDependencies
  • --no-save 防止保存到依赖项
  • -E, --save-exact 依赖项将使用精确的版本进行配置,而不是使用 npm 的默认 semver 范围运算符
  • -B, --save-bundle 依赖项也将添加到您的 bundleDependencies 列表中

命令 npm inpm install 的别名

清单

命令描述
npm list列出此软件中所有依赖项的已安装版本
npm list -g --depth 0列出所有全局安装包的安装版本
npm view列出此软件中所有依赖项的最新版本
npm outdated仅列出此软件中已过时的依赖项

缓存 cache

npm cache add <package-spec>    # 将指定的包添加到本地缓存
npm cache clean [<key>]         # 删除缓存文件夹中的所有数据
npm cache ls [<name>@<version>]
npm cache verify # 验证缓存文件夹的内容,垃圾收集任何不需要的数据,
                 # 并验证缓存索引和所有缓存数据的完整性

用于添加、列出或清理 npm 缓存文件夹

更新

命令描述
npm version <version>要更改 package.json 中的版本号
npm update更新生产包
npm update --dev更新开发包
npm update -g更新全局包
npm update lodash更新 lodash

杂项功能

将某人添加为所有者

npm owner add USERNAME PACKAGENAME

列出包

npm ls

向安装旧版本软件包的用户添加警告(弃用)

npm deprecate PACKAGE@"< 0.2.0" "critical bug fixed in v0.2.0"

更新所有包或选定的包

npm update [-g] PACKAGE

检查过时的包

npm outdated [PACKAGE]

更改包裹可见性

将公共包设为私有

npm access restricted <package-name>

公开私有包

npm access public <package-name>

授予私有包访问权限

npm owner add <user> <your-package-name>

要将包转移到 npm 用户帐户

npm owner add <their-username> <package-name>
# 新维护者接受邀请
npm owner rm <your-username> <package-name>

写入启用了双因素身份验证

npm owner add <their-username> <package-name> --otp=123456

取消发布包

npm unpublish <package-name> -f
# 取消指定版本
npm unpublish <package-name>@<version>

注意:如果您取消发布整个包,则必须在 24 小时后才能发布该包的任何新版本。

发布包 npmjs.org

npm publish
# 第一次需要指定公开参数
npm publish --access public

发布公开包,到 npmjs.org

配置

.npmrc

:-:-
/path/to/project/.npmrc每个项目的配置文件
~/.npmrc每个用户的配置文件
$PREFIX/etc/npmrc全局配置文件
/path/to/npm/npmrcnpm 内置配置文件

配置内容

# last modified: 01 Jan 2016
; Set a new registry for a scoped package
@myscope:registry=https://registry.npmmirror.com

注释使用 #, ; 放置到一行的开头。.npmrc 文件由指定此注释语法的 npm/ini 解析

.npmignore

将下面内容存放到 .npmignore 文件中,放置在项目的根目录中。

.git
.svn
# 忽略 .swp 后缀的文件
.*.swp
/logs/*

# “!” 意思是不要忽视
!logs/.gitkeep

.npmignore 文件就像 .gitignore 一样工作。它不能覆盖 package.json#files 字段。

中国镜像站安装

# 临时使用
$ npm install -g <package-name> --registry=https://registry.npmmirror.com

将配置放置在 .npmrc 全局配置文件中,或者在项目的根目录中。

; registry=https://registry.npmjs.org/
registry=https://registry.npmmirror.com

或者配置到 package.json#publishConfig 字段上

"publishConfig":{
  "registry": "https://registry.npmmirror.com"
}

替换 npm 仓库地址为 npmmirror(淘宝) 镜像地址

npm config set registry https://registry.npmmirror.com

请参阅:npmmirror 中国镜像站

electronjs 镜像和缓存

ELECTRON_MIRROR="https://npmmirror.com/mirrors/electron/"
ELECTRON_BUILDER_BINARIES_MIRROR=https://npmmirror.com/mirrors/electron-builder-binaries/
; ELECTRON_CUSTOM_DIR="{{ version }}"

身份验证相关配置

//registry.npmjs.org/:_authToken=MYTOKEN
; 将适用于 @myorg 和 @another
//somewhere.com/:_authToken=MYTOKEN
; 将适用于 @myorg
//somewhere.com/myorg/:_authToken=MYTOKEN1
; 将适用于 @another
//somewhere.com/another/:_authToken=MYTOKEN2