UNPKG

npmc

Version:

a package manager for JavaScript

101 lines (77 loc) 4.02 kB
## v6.0.0 (2018-03-23): Sometimes major releases are a big splash, sometimes they're something smaller. This is the latter kind. That said, we expect to keep this in release candidate status until Node 10 ships at the end of April. There will likely be a few more features for the 6.0.0 release line between now and then. We do expect to have a bigger one later this year though, so keep an eye out for `npm@7`! ### *BREAKING* AVOID DEPRECATED When selecting versions to install, we now avoid deprecated versions if possible. For example: ``` Module: example Versions: 1.0.0 1.1.0 1.1.2 1.1.3 (deprecated) 1.2.0 (latest) ``` If you ask `npm` to install `example@~1.1.0`, `npm` will now give you `1.1.2`. By contrast, if you installed `example@~1.1.3` then you'd get `1.1.3`, as it's the only version that can match the range. * [`78bebc0ce`](https://github.com/npm/npm/commit/78bebc0cedc4ce75c974c47b61791e6ca1ccfd7e) [#20151](https://github.com/npm/npm/pull/20151) Skip deprecated versions when possible. ([@zkat](https://github.com/zkat)) ### *BREAKING* UPDATE AND OUTDATED When `npm install` is finding a version to install, it first checks to see if the specifier you requested matches the `latest` tag. If it doesn't, then it looks for the highest version that does. This means you can do release candidates on tags other than `latest` and users won't see them unless they ask for them. Promoting them is as easy as setting the `latest` tag to point at them. Historically `npm update` and `npm outdated` worked differently. They just looked for the most recent thing that matched the semver range, disregarding the `latest` tag. We're changing it to match `npm install`'s behavior. * [`3aaa6ef42`](https://github.com/npm/npm/commit/3aaa6ef427b7a34ebc49cd656e188b5befc22bae) Make update and outdated respect latest interaction with semver as install does. ([@iarna](https://github.com/iarna)) * [`e5fbbd2c9`](https://github.com/npm/npm/commit/e5fbbd2c999ab9c7ec15b30d8b4eb596d614c715) `npm-pick-manifest@2.1.0` ([@iarna](https://github.com/iarna)) ### PLUS ONE SMALLER PATCH Technically this is a bug fix, but the change in behavior is enough of an edge case that I held off on bringing it in until a major version. When we extract a binary and it starts with a shebang (or "hash bang"), that is, something like: ``` #!/usr/bin/env node ``` If the file has Windows line endings we strip them off of the first line. The reason for this is that shebangs are only used in Unix-like environments and the files with them can't be run if the shebang has a Windows line ending. Previously we converted ALL line endings from Windows to Unix. With this patch we only convert the line with the shebang. (Node.js works just fine with either set of line endings.) * [`814658371`](https://github.com/npm/npm/commit/814658371bc7b820b23bc138e2b90499d5dda7b1) [`7265198eb`](https://github.com/npm/npm/commit/7265198ebb32d35937f4ff484b0167870725b054) `bin-links@1.1.2`: Only rewrite the CR after a shebang (if any) when fixing up CR/LFs. ([@iarna](https://github.com/iarna)) ### *BREAKING* SUPPORTED NODE VERSIONS Per our supported Node.js policy, we're dropping support for both Node 4 and Node 7, which are no longer supported by the Node.js project. * [`077cbe917`](https://github.com/npm/npm/commit/077cbe917930ed9a0c066e10934d540e1edb6245) Drop support for Node 4 and Node 7. ([@iarna](https://github.com/iarna)) ### DEPENDENCIES * [`478fbe2d0`](https://github.com/npm/npm/commit/478fbe2d0bce1534b1867e0b80310863cfacc01a) `iferr@1.0.0` * [`b18d88178`](https://github.com/npm/npm/commit/b18d88178a4cf333afd896245a7850f2f5fb740b) `query-string@6.0.0` * [`e02fa7497`](https://github.com/npm/npm/commit/e02fa7497f89623dc155debd0143aa54994ace74) `is-cidr@2.0.5` * [`c8f8564be`](https://github.com/npm/npm/commit/c8f8564be6f644e202fccd9e3de01d64f346d870) [`311e55512`](https://github.com/npm/npm/commit/311e5551243d67bf9f0d168322378061339ecff8) `standard@11.0.1`