使用ni告别包管理器混乱

你是否曾发现自己在处理多个使用不同包管理器的项目时,不小心在错误的项目中运行了错误的包管理器?

这可能会导致混乱的锁文件和依赖关系,从而浪费时间。幸运的是,这个问题有一个解决方案:ni

ni 是一个简单而强大的工具,可以让你在任何项目中运行正确的包管理器,而无需记住它使用的是哪个。本博文将解释如何使用ni及其各种命令。

安装 NI

要安装 ni,请在终端中运行以下命令:

1
npm i -g @antfu/ni

使用 -g 标志进行全局安装,这样你就可以在所有项目中使用它。

使用 NI

ni 有几个命令,使得在你的项目中使用正确的包管理器变得更容易。下面,我们详细介绍最常见的命令列表。

ni 安装包

ni 命令使用正确的包管理器为你的项目安装包。要使用它,只需运行命令后跟包名称。

1
2
3
# 安装 React,自动使用正确的包管理器
# 对于 npm,执行 `npm install react`,对于 yarn,执行 `yarn install react`,等等
ni react

此命令使用正确的包管理器(npmyarnpnpm bun)安装 React。

对于开发依赖项,请使用 -D:

1
2
# 对于开发依赖项
ni @types/react -D

使用 --frozen 来避免写入锁文件:

1
2
# 等同于 npm ci,yarn install --immutable 等
ni --frozen
nr 运行脚本

nr 命令使用正确的包管理器在你的项目中运行脚本。要使用它,请运行命令后跟脚本名称和任何选项。

1
2
# 在npm 中运行 `npm start`,在 yarn 中运行 `yarn start`,等等
nr start

此命令使用正确的包管理器运行启动脚本。

这也有一个方便的好处 —— 你不需要使用 – 来分隔你的脚本参数:

1
2
# 等同于 `npm run serve -- --port 8080`,`yarn run serve --port 8080`,等等
nr serve --port 8080

你也可以只运行 nr 来交互式选择要运行的脚本:

nix 执行包

nix 命令使用正确的包管理器执行你的项目中的包。要使用它,请运行命令后跟包名称。

1
2
# 在 npm 中等同于 `npx jest`,在 yarn 中等同于 `yarn dlx jest`,等等
nix jest

此命令使用正确的包管理器执行 Jest。

nu 升级包

nu 命令使用正确的包管理器更新过时的包。要使用它,请运行命令后跟任何选项。

1
2
# 等同于 `npm upgrade`,`yarn up`,等等
nu

此命令使用正确的包管理器将所有包更新到它们的最新版本。

nun 卸载包

nun 命令使用正确的包管理器为你的项目卸载包。要使用它,运行命令后跟包名称。

1
2
# 等同于 `npm uninstall react`,`yarn remove react`,等等
nun react

此命令使用正确的包管理器卸载 React

使用 -C 切换目录

你也可以使用 ni 来更改目录并在新目录中运行命令。

1
ni -C packages/foo react

此命令将目录更改为 packages/foo 并使用正确的包管理器安装 React

总结

通过使用 ni,你可以节省大量时间,并避免处理冲突的锁文件和依赖关系时的挫败感。所以,如果你还没有尝试过 ni,那就试试吧 —— 你不会后悔的!