Project Icon

ni

自动检测与执行的跨平台包管理工具

ni 是一个跨平台的包管理工具,可自动检测并执行 npm、yarn、pnpm 和 bun 等主流包管理器的命令。它提供统一的接口用于安装、运行、升级和卸载依赖,简化了开发流程,提高了效率。通过 ni,开发者可以在不同项目间无缝切换,而无需记忆各种包管理器的具体命令。

ni

在 yarn 项目中又用了 npm i?糟糕!

ni - 使用正确的包管理器


npm i -g @antfu/ni

npm · yarn · pnpm · bun


ni - 安装

ni

# npm install
# yarn install
# pnpm install
# bun install
ni vite

# npm i vite
# yarn add vite
# pnpm add vite
# bun add vite
ni @types/node -D

# npm i @types/node -D
# yarn add @types/node -D
# pnpm add -D @types/node
# bun add -d @types/node
ni --frozen

# npm ci
# yarn install --frozen-lockfile (Yarn 1)
# yarn install --immutable (Yarn Berry)
# pnpm install --frozen-lockfile
# bun install --frozen-lockfile
ni -g eslint

# npm i -g eslint
# yarn global add eslint (Yarn 1)
# pnpm add -g eslint
# bun add -g eslint

# 这将使用默认代理,无论你当前的工作目录是什么
ni -i

# 交互式选择要安装的依赖
# 按名称搜索包

nr - 运行

nr dev --port=3000

# npm run dev -- --port=3000
# yarn run dev --port=3000
# pnpm run dev --port=3000
# bun run dev --port=3000
nr

# 交互式选择要运行的脚本
# 支持 https://www.npmjs.com/package/npm-scripts-info 约定
nr -

# 重新运行上一个命令

nlx - 下载并执行

nlx vitest

# npx vitest
# yarn dlx vitest
# pnpm dlx vitest
# bunx vitest

nu - 升级

nu

# npm upgrade
# yarn upgrade (Yarn 1)
# yarn up (Yarn Berry)
# pnpm update
# bun update
nu -i

# (npm 和 bun 不可用)
# yarn upgrade-interactive (Yarn 1)
# yarn up -i (Yarn Berry)
# pnpm update -i

nun - 卸载

nun webpack

# npm uninstall webpack
# yarn remove webpack
# pnpm remove webpack
# bun remove webpack
nun

# 交互式选择
# 要删除的依赖
nun -m

# 交互式选择,
# 但可以选择多个依赖
nun -g silent

# npm uninstall -g silent
# yarn global remove silent
# pnpm remove -g silent
# bun remove -g silent

nci - 清洁安装

nci

# npm ci
# yarn install --frozen-lockfile
# pnpm install --frozen-lockfile
# bun install --frozen-lockfile

如果相应的节点管理器不存在,此命令将顺便全局安装它。


na - 代理别名

na

# npm
# yarn
# pnpm
# bun
na run foo

# npm run foo
# yarn run foo
# pnpm run foo
# bun run foo

全局标志

# ?               | 打印根据代理执行的命令
ni vite ?

# -C              | 在运行命令前更改目录
ni -C packages/foo vite
nr -C playground dev

# -v, --version   | 显示版本号
ni -v

# -h, --help      | 显示帮助信息
ni -h

配置

; ~/.nirc

; 当没有找到锁文件时的回退选项
defaultAgent=npm # 默认为 "prompt"

; 用于全局安装
globalAgent=npm
# ~/.bashrc

# 自定义配置文件路径
export NI_CONFIG_FILE="$HOME/.config/ni/nirc"

# 如果存在,环境变量的优先级高于配置文件
export NI_DEFAULT_AGENT="npm" # 默认为 "prompt"
export NI_GLOBAL_AGENT="npm"
# 适用于 Windows

# 在 PowerShell 中自定义配置文件路径,可在 `$profile` 路径中访问
$Env:NI_CONFIG_FILE = 'C:\to\your\config\location'

集成

asdf

你也可以通过 CanRau 维护的 第三方 asdf 插件 安装 ni

# 首先添加插件
asdf plugin add ni https://github.com/CanRau/asdf-ni.git

# 然后安装最新版本
asdf install ni latest

# 最后使其全局可用
asdf global ni latest

原理

ni 假定你使用锁文件(你应该这么做)

在运行之前,它会检测你的 yarn.lock / pnpm-lock.yaml / package-lock.json / bun.lockb 来确定当前的包管理器(或者如果指定了,则使用 packages.json 中的 packageManager 字段),然后运行相应的命令

故障排除

与 PowerShell 冲突

PowerShell 自带一个名为 ni 的内置别名,用于 New-Item cmdlet。要在当前 PowerShell 会话中删除此别名以支持本包,请使用以下命令:

'Remove-Item Alias:ni -Force -ErrorAction Ignore'

如果你想保持更改,可以将它们添加到你的 PowerShell 配置文件中。配置文件路径可在 $profile 变量中访问。ps1 配置文件通常可以在以下位置找到:

  • PowerShell 5 (Windows PowerShell): C:\Users\USERNAME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
  • PowerShell 7: C:\Users\USERNAME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
  • VSCode: C:\Users\USERNAME\Documents\PowerShell\Microsoft.VSCode_profile.ps1

你可以使用以下脚本在 shell 启动时删除别名,方法是将上述命令添加到你的配置文件中:

if (-not (Test-Path $profile)) {
  New-Item -ItemType File -Path (Split-Path $profile) -Force -Name (Split-Path $profile -Leaf)
}

$profileEntry = 'Remove-Item Alias:ni -Force -ErrorAction Ignore'
$profileContent = Get-Content $profile
if ($profileContent -notcontains $profileEntry) {
  ("`n" + $profileEntry) | Out-File $profile -Append -Force -Encoding UTF8
}

nxnix 不再可用

我们将 nx/nix 重命名为 nlx,以避免与其他现有工具 - nxnix 发生冲突。你可以随时在 shell 配置文件(.zshrc.bashrc 等)中为它们添加别名。

alias nx="nlx"
# 或
alias nix="nlx"
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号