npm pnpm 4.0.0-3

latest releases: 10.0.0-alpha.2, 10.0.0-alpha.1, 9.13.2...
5 years ago

Breaking Changes

  • new node_modules structure.
    • all the hard linked dependencies are inside node_modules/.pnpm (#1636, @zkochan)
    • all the hoisted dependencies are symlinked into node_modules/.pnpm/node_modules. So application code has no access to the hoisted packages but dependencies have. (@zkochan)
    • the current lockfile is moved from node_modules/.pnpm-lock.yaml to node_modules/.pnpm/lock.yaml (#2018, @zkochan)
  • shamefully-flatten renamed to shamefully-hoist. (@zkochan)
  • hoist-pattern is * by default. All packages are hoisted but application code has access only to listed dependencies. So the buggy ecosystem packages will work but pnpm will prevent users from requiring packages that are not declared in package.json. (@zkochan)
  • all globally installed packages are always hoisted. (@zkochan)
  • pnpm add fails if no packages are specified (5f73a7c, @zkochan)
  • pnpm install installs all dependencies of all workspace packages when executed inside a workspace (5f73a7c, @zkochan)
  • independent-leaves is only allowed with hoisting turned off (f3d5037, @zkochan)
  • pnpm outdated does not print details by default. To should details, use the --long flag (#2017, @aparajita)
  • the root package.json is always included in the workspace (#2021, @ExE-Boss)

Features

  • new config settings:
    • hoist: true by default. When false, pnpm will not hoist any dependencies in node_modules, preventing dependencies inside node_modules from accessing unlisted dependencies. (#2004, @zkochan)
    • hoist-pattern: * by default. All packages matching this pattern will be hoisted. For example, you can choose to hoist only eslint packages: hoist-pattern=eslint-*. By default, all packages are hoisted. (#1997, #1998, @zkochan)
    • shamefully-hoist: same as shamefully-flatten in previous versions of pnpm. The project's code has access to hoisted dependencies. (#2006, @zkochan)
  • pnpm outdated:
    • restyle the pnpm outdated output for readability (#2007, @aparajita)
      after
    • pnpm outdated --no-table prints a list of outdated packages instead of a table (#2026, @aparajita)
      image
  • nicer output of the --help commands (#2013, @zkochan)
    image
  • new command: pnpm why <package> (#2015, @ExE-Boss)

Don't miss a new pnpm release

NewReleases is sending notifications on new releases.