大名鼎鼎的npm
(Node Package Manager)是随同NodeJS一起安装的包管理工具,NPM本身也是Node.js的一个模块。
npm的含义有两层:
- npm服务器,npm服务器网址为https://www.npmjs.org,npm是 Node 包的标准发布平台,用于 Node 包的发布、传播;
- npm包管理器,指在命令行窗口或终端使用npm命令来管理node包(模块),开发者可以使用npm命令下载、安装、升级、删除包等。
yarn 、 cnpm 、 npx 、 pnpm都是基于npm的包管理器,是基于npm包管理器的一些变种。解决了早期npm的一些缺点,例如下载速度慢,不能离线下载等。
nvm是Node.js版本管理器
cnpm
某些情况下我们没办法很好的从 https://registry.npmjs.org下载下来一些需要的包,cnpm是方便中国开发者下载依赖包而诞生的包管理工具.
可以直接设置npm的镜像:
npm config get registry
npm config set registry https://registry.npm.taobao.org
也可以使用cnpm,并且将cnpm设置为淘宝的镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry
使用时只要把原来的npm改为cnpm即可
pnpm
解决了yarn、npm在多个项目安装同一个依赖时会下载重复文件的问题,避免磁盘的浪费,同时大大提升下载速度。
- pnpm将依赖包存放在一个统一的位置
- 对同一依赖包使用相同的版本,磁盘上只有这个依赖包的一份文件;
- 同一依赖包需要使用不同的版本,仅有版本之间不同的文件会被存储起来;
- 当安装软件包时,其包含的所有文件都会硬链接到此位置,不会占用额外的硬盘空间;
pnpm的官网:https://pnpm.io/zh/
yarn
yarn解决了早期npm
的一些问题比如:不支持离线模式、树形结构的依赖、依赖安装不确定性等。npm新版本基本上已经解决了自身的老毛病,目前yarn和npm没有很大区别。
https://www.yarnpkg.cn
npx
npx是[email protected]版本的一个命令。npx运行的时候,会到node_modules/.bin路径和环境变量$PATH里面,检查命令是否存在,存在则执行;不存在则下载到一个临时目录,使用以后再删除。
npx的作用:
- 让项目内部安装的模块用起来更方便
- 避免全局安装模块
- 使用不同版本的 node
- 执行 GitHub 源码
在不安装全局包的情况下执行命令时,可以使用以下命令
npx <package> <command>
例如:要使用create-react-app创建一个新的React项目,我们可以使用以下命令:
npx create-react-app my-app
直接通过npm执行命令
npx npm <command>
常用命令
npm命令 | yarn等价命令 | pnpm 等价命令 | 说明 |
---|---|---|---|
npm install | yarn install | pnpm install | 安装项目的依赖项 |
npm install | yarn add | pnpm add | 安装某个依赖,并且默认保存到package.json |
npm uninstall | yarn remove | pnpm remove | 移除某个依赖 |
npm run | yarn run | pnpm | 运行某个命令 |