Skip to content

v7.4.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Jun 14:09
· 1417 commits to main since this release

Minor Changes

  • Dependencies patching is possible via the pnpm.patchedDependencies field of the package.json.
    To patch a package, the package name, exact version, and the relative path to the patch file should be specified. For instance:

    {
      "pnpm": {
        "patchedDependencies": {
          "eslint@1.0.0": "./patches/eslint@1.0.0.patch"
        }
      }
    }
  • Two new commands added: pnpm patch and pnpm patch-commit.

    pnpm patch <pkg> prepares a package for patching. For instance, if you want to patch express v1, run:

    pnpm patch express@1.0.0
    

    pnpm will create a temporary directory with express@1.0.0 that you can modify with your changes.
    Once you are read with your changes, run:

    pnpm patch-commit <path to temp folder>
    

    This will create a patch file and write it to <project>/patches/express@1.0.0.patch.
    Also, it will reference this new patch file from the patchedDependencies field in package.json:

    {
      "pnpm": {
        "patchedDependencies": {
          "express@1.0.0": "patches/express@1.0.0.patch"
        }
      }
    }
  • A new experimental command added: pnpm deploy. The deploy command takes copies a project from a workspace and installs all of its production dependencies (even if some of those dependencies are other projects from the workspace).

    For example, the new command will deploy the project named foo to the dist directory in the root of the workspace:

    pnpm --filter=foo deploy dist
    
  • package-import-method supports a new option: clone-or-copy.

  • New setting added: include-workspace-root. When it is set to true, the run, exec, add, and test commands will include the root package, when executed recursively #4906

Patch Changes

  • Don't crash when pnpm update --interactive is cancelled with Ctrl+c.

  • The use-node-version setting should work with prerelease Node.js versions. For instance:

    use-node-version=18.0.0-rc.3
    
  • Return early when the lockfile is up-to-date.

  • Resolve native workspace path for case-insensitive file systems #4904.

  • Don't link local dev dependencies, when prod dependencies should only be installed.

  • pnpm audit --fix should not add an override for a vulnerable package that has no fixes released.

  • Update the compatibility database.

Our Gold Sponsors

Our Silver Sponsors

What's Changed

  • feat: patch package by @zkochan in #4885
  • feat: add patch and patch-commit commands by @zkochan in #4900
  • fix(env): use-node-version should work with prerelease versions by @zkochan in #4903
  • refactor: create @pnpm/node.fetcher by @zkochan in #4908
  • feat(patch): update patched dependencies on install by @zkochan in #4905
  • fix: throw an error if not all patches were applied by @zkochan in #4911
  • fix: a modified patch should update the deps on install by @zkochan in #4918
  • fix: packages should be patched even when scripts are ignored by @zkochan in #4922
  • fix: patch package even if it is not in the onlyBuiltDependencies list by @zkochan in #4925
  • fix: respect include-workspace-root npmrc option by @shirotech in #4928
  • fix: install --lockfile-only should exit early by @zkochan in #4932
  • fix: resolve real path for case insensitive systems by @mdogadailo in #4935
  • feat: deploy command by @zkochan in #4933
  • fix: use recursive for deploy command directory creation by @ragrag in #4943
  • fix: don't fail when the patched pkg appears multiple times by @zkochan in #4945

New Contributors

Full Changelog: v7.3.0...v7.4.0