🥦 Taze
(发音为/ta:zei/,波斯语中意为"新鲜")
一个保持依赖项更新的现代命令行工具
npx taze
或对monorepo进行递归操作
npx taze -r
特性
- 内置支持 monorepo
- 无需安装 —
npx taze
- 默认安全 — 在允许的版本范围内更新
使用方法
默认情况下,taze
只会在 package.json
中指定的版本范围内更新版本(这是安全的,也是 npm install
的默认行为)
要忽略这些范围,请明确设置允许的最大版本变更。
例如,taze major
将检查所有变更并更新到最新的稳定版本,包括主版本(破坏性变更),或者 taze minor
将在同一主版本内更新到最新的次要版本。
检查主版本更新
检查次要版本更新
检查补丁版本更新
Monorepo
taze
内置一流的 monorepo 支持。只需添加 -r
参数,它就会扫描包含 package.json
的子目录并一起更新。它会自动处理本地私有包。
配置
更多详情请查看 taze --help
过滤器
你可以使用 --include
或 --exclude
来过滤要检查更新的包;它们接受字符串和正则表达式,用逗号(,)分隔。
taze --include lodash,webpack
taze --include /react/ --exclude react-dom # 也支持正则表达式
锁定版本
默认情况下会跳过锁定(没有 ^
或 ~
的固定版本)的包,使用 taze --include-locked
或 taze -l
来显示它们。
配置文件
通过 taze.config.js
文件,你可以配置与命令行相同的选项。
import { defineConfig } from 'taze'
export default defineConfig({
// 忽略更新的包
exclude: [
'webpack'
],
// 从注册表获取最新的包信息,不使用缓存
force: true,
// 写入 package.json
write: true,
// 更新后立即运行 `npm install` 或 `yarn install`
install: true,
// 在 monorepo 中查找 package.json 时忽略的路径
ignorePaths: [
'**/node_modules/**',
'**/test/**',
],
// 为每个包覆盖不同的更新模式
packageMode: {
'typescript': 'major',
'unocss': 'ignore',
// 正则表达式以 '/' 开始和结束
'/vue/': 'latest'
},
// 禁用检查 package.json 中的 "overrides" 字段
depFields: {
overrides: false
}
})
替代方案
taze
受到以下工具的启发。
它们都很好用,但有不同的重点和功能集,也可以试试它们 :)
致谢
非常感谢 @sinoon 在头脑风暴和反馈讨论中提供的大量帮助。
许可证
MIT 许可证 © 2020 Anthony Fu