Skip to content
/ freshdeps Public

🌱 A modern cli tool that keeps your deps fresh

License

Notifications You must be signed in to change notification settings

nyxb/freshdeps

Repository files navigation

cover npm version npm downloads bundle License

🌱 A modern cli tool that keeps your deps fresh

npx freshdeps

or recursively for monorepos

npx freshdeps -r

🌟 Features

  • Built-in support for monorepos
  • No installation required β€” npx freshdeps
  • Safe by default β€” updates in the version range you are allowed

πŸ”§ Usage

By default, freshdeps will only bump versions in the ranges you specified in package.json (which is safe and the default behavior of npm install)

To ignore the ranges, explicitly set the maximum allowed version change.

For example freshdeps major will check all changes and bump to the latest stable changes including majors (breaking changes), or freshdeps minor that bump to latest minor changes within the same major version.

πŸ“¦ Monorepo

freshdeps has the built-in first-class monorepo support. Simply adding -r will scan the subdirectories that contain package.json and update them together. It will handle local private packages automatically.

βš™οΈ Configures

See freshdeps --help for more details

🧩 Filters

You can filter out packages you want to check for upgrades by --include or --exclude; they accept string and regex, separated by commas (,).

freshdeps --include lodash,webpack
freshdeps --include /react/ --exclude react-dom # regex is also supported

πŸ“„ Config file

You can either use fresh.config.{js,ts,json} or the fresh key in the package.json file to configure the same options available in the command.

import { DefineConfig } from 'freshdeps'

export default DefineConfig({
  // ignore packages from bumping
  exclude: [
    'webpack'
  ],
  // fetch latest package info from registry without cache
  force: true,
  // write to package.json
  write: true,
  // run `npm install` or `yarn install` right after bumping
  install: true,
  // override with different bumping mode for each package
  packageMode: {
    'typescript': 'major',
  }
})

πŸ“œ License

MIT - Made with πŸ’ž