github pnpm/pnpm v6.0.0-rc.1

latest releases: v8.15.8, v9.1.0-0, v9.0.6...
pre-release3 years ago

Breaking Changes

  • Node.js v10 support is dropped. At least Node.js v12.17 is required for the package to work.

  • The lockfile version is bumped to v5.3. Changes in the new format:

    • Blank lines added between package/project entries to improve readability and decrease merge issues.
    • The resolution, engines, os, and cpu fields are now always written in a single lines, as the first keys of the package objects.
    • A new field is added to the package objects: transitivePeerDependencies.
  • The layout of the virtual store directory has changed (node_modules/.pnpm) to allow keeping cache in it:

    • All packages inside the virtual store directory are on the same depth. Instead of subdirectories, one directory is used with # instead of slashes.
    • New setting added: modules-cache-max-age. The default value of the setting is 10080 (7 days in seconds). modules-cache-max-age is the time in minutes after which pnpm should remove the orphan packages from node_modules.
  • pnpx does not automatically install packages. A prompt asks the user if a package should be installed, if it is not present.

    pnpx --yes tells pnpx to install any missing package.

    pnpx --no makes pnpx fail if the called packages is not installed.

  • Arbitrary pre/post hooks for user-defined scripts (such as prestart) are not executed automatically.

  • pnpmfile.js renamed to .pnpmfile.cjs in order to force CommonJS.

  • .pnp.js renamed to .pnp.cjs in order to force CommonJS.

  • The pnpm-prefix setting is removed. Use global-dir to specify a custom location for the globally installed packages.

  • The default depth of an update is Infinity, not 0.

  • The --global option should be used when linking from/to the global modules directory.

    Linking a package to the global directory:

    • pnpm v4: pnpm link
    • pnpm v5: pnpm link --global

    Linking a package from the global directory:

    • pnpm v4: pnpm link foo
    • pnpm v5: pnpm link --global foo
  • pnpm's command file's extension changed to .cjs (bin/pnpm.js=>bin/pnpm.cjs).

  • node-gyp updated to v8.

  • prepublish is not executed on a local pnpm install. Use prepare instead.

Features

  • A new command added: pnpm fetch.

    Fetch packages from a lockfile into virtual store, package manifest is ignored.
    This command is specifically designed to boost building a docker image.

  • Overrides match dependencies by checking if the target range is a subset of the specified range, instead of making an exact match.

    For example, the following override will replace any version of foo that has a subrange on v2:

    "pnpm": {
      "overrides": {
        "foo@2": "2.1.0"
      }
    }

    This will override foo@2.2.0 and foo@^2.3.0 to foo@2.1.0 as both 2.2.0 and ^2.3.0 are subranges of 2.

Don't miss a new pnpm release

NewReleases is sending notifications on new releases.