npm
(Node Package Manager)是 Node.js 的官方包管理工具,是一个命令行的工具,用于安装、升级、移除和管理依赖项
类似于:
- Java 的
Maven
,Java 的构建工具和项目管理工具,可以自动化构建、测试和部署 Java 应用程序 - PHP 的
Composer
,PHP 的包管理器,可以用于下载、安装和管理 PHP 的依赖项 - Python 的
pip
,Python 的包管理器,可以用于安装和管理 Python 的依赖项 - Rust 的
Cargo
,Rust 的包管理器和构建工具,可以用于下载、编译和管理 Rust 的依赖项
npm
常用命令
npm init
:初始化一个新的 npm 项目,创建package.json
文件npm install
(简写npm i
):安装依赖包,将依赖包存放在当前目录的node_modules
文件夹下npm i
:安装package.json
文件指定的所有依赖包npm i <package-name>
:安装指定的包的最新版本npm i <package-name>@<version>
:安装指定的包的指定版本npm i --save/-S <package-name>
:安装指定包,并将其添加到package.json
文件中的依赖列表中("dependencies"
)- npm V5 后可以不写,默认就是
--save
- npm V5 后可以不写,默认就是
npm i --save-dev/-D <package-name>
:安装指定包,并将其添加到package.json
文件中的开发依赖列表中("devDependencies"
)npm i --global/-g <package-name>
:全局安装指定的包,安装路径已被添加到PATH
环境变量中,所以可以直接在 shell 中使用全局安装包的命令- 依赖项:
dependencies
:生产和开发依赖,生产环境也需要用的包,如:vue
、vue-router
devDependencies
:开发依赖,生产环境不需要,只在开发是需要的包,如:webpack
、typescript
peerDependencies
:对等依赖,依赖包但该包不由我提供,而是由使用我的项目提供,如:本包是 webpack 的一个插件,就依赖于 webpack,但我不需要安装,而是由使用我这个插件的项目提供
npm update
:更新依赖包版本npm update
:更新package.json
文件指定的所有依赖包npm update <package-name>
:更新指定的包npm update --global/-g <package-name>
:更新全局安装指定的包- 版本相关:
- 遵循 SemVer(Semantic Version,语义化版本)规范
- 正式版:
MAJOR.MINOR.PATCH
- 主版本:重大更新,不兼容的 API 修改
- 次版本:向下兼容的功能性新增
- 修订版本:向下兼容的问题修正
- 先行版本:
MAJOR.MINOR.PATCH-alpha|beta|rc.number
npm uninstall/uni <package-name>
:卸载指定的包npm run <script-name>
:执行 package.json 文件中定义的脚本命令。npm search <keyword>
:搜索 npm 库中包含指定关键字的包。npm info <package-name>
:查看指定包的详细信息。npm list
:列出当前项目中安装的所有包。npm outdated
:列出当前项目中需要更新的包。npm audit
:检查当前项目中的依赖项是否存在安全漏洞。npm publish
:发布自己开发的包到 npm 库中。npm login
:登录到 npm 账户。npm logout
:注销当前 npm 账户。npm link
: 将本地模块链接到全局的node_modules
目录下npm config list
用于列出所有的 npm 配置信息。执行该命令可以查看当前系统和用户级别的所有 npm 配置信息,以及当前项目的配置信息(如果在项目目录下执行该命令)npm get registry
用于获取当前 npm 配置中的 registry 配置项的值。registry 配置项用于指定 npm 包的下载地址,如果未指定,则默认使用 npm 官方的包注册表地址npm set registry
npm config set registry <registry-url>
命令,将 registry 配置项的值修改为指定的<registry-url>
地址