For the examples below, assume that the current package is app and it depends
on dependencies, dep1 (dep2, .. etc.). The published versions of dep1
are:
{
"dist-tags": { "latest": "1.2.2" },
"versions": [
"1.2.2",
"1.2.1",
"1.2.0",
"1.1.2",
"1.1.1",
"1.0.0",
"0.4.1",
"0.4.0",
"0.2.0"
]
}
CaretDependencies
If app's package.json contains:
"dependencies": {
"dep1": "^1.1.1"
}
Then npmupdate will install dep1@1.2.2, because 1.2.2 is latest and
1.2.2 satisfies ^1.1.1.
TildeDependencies
However, if app's package.json contains:
"dependencies": {
"dep1": "~1.1.1"
}
In this case, running npmupdate will install dep1@1.1.2. Even though the
latest tag points to 1.2.2, this version do not satisfy ~1.1.1, which is
equivalent to >=1.1.1<1.2.0. So the highest-sorting version that satisfies
~1.1.1 is used, which is 1.1.2.
CaretDependenciesbelow1.0.0
Suppose app has a caret dependency on a version below 1.0.0, for example:
"dependencies": {
"dep1": "^0.2.0"
}
npmupdate will install dep1@0.2.0, because there are no other
versions which satisfy ^0.2.0.
If the dependence were on ^0.4.0:
"dependencies": {
"dep1": "^0.4.0"
}
Then npmupdate will install dep1@0.4.1, because that is the highest-sorting
version that satisfies ^0.4.0 (>=0.4.0<0.5.0)
Subdependencies
Suppose your app now also has a dependency on dep2
{
"name": "my-app",
"dependencies": {
"dep1": "^1.0.0",
"dep2": "1.0.0"
}
}
and dep2 itself depends on this limited range of dep1
{
"name": "dep2",
"dependencies": {
"dep1": "~1.1.1"
}
}
Then npmupdate will install dep1@1.1.2 because that is the highest
version that dep2 allows. npm will prioritize having a single version
of dep1 in your tree rather than two when that single version can
satisfy the semver requirements of multiple dependencies in your tree.
In this case if you really did need your package to use a newer version
you would need to use npminstall.
UpdatingGlobally-InstalledPackagesnpmupdate-g will apply the update action to each globally installed
package that is outdated -- that is, has a version that is different from
wanted.
Note: Globally installed packages are treated as if they are installed with a
caret semver range specified. So if you require to update to latest you may
need to run npminstall-g[<pkg>...]
NOTE: If a package has been upgraded to a version newer than latest, it will
be downgraded.