I used nvm to download node v0.4.10 and installed npm to work with that version of node.
I am trying to install express using
npm install express -g
and I get an error that express requires node version >= 0.5.0.
Well, this is odd, since I am following the directions for a node+express+mongodb tutorial here that used node v0.4.10, so I am assuming express is/was available to node v0.4.10. If my assumption is correct, how do I tell npm to fetch a version that would work with my setup?
If you have to install an older version of a package, just specify it
npm install <package>@<version>
For example: npm install express@3.0.0
You can also add the --save
flag to that command to add it to your package.json dependencies, or --save --save-exact
flags if you want that exact version specified in your package.json dependencies.
The install
command is documented here: https://docs.npmjs.com/cli/install
If you're not sure what versions of a package are available, you can use:
npm view <package> versions
And npm view
can be used for viewing other things about a package too. https://docs.npmjs.com/cli/view
It's quite easy. Just write this, for example:
npm install -g npm@4.6.1
Or:
npm install -g npm@latest // For the last stable version
npm install -g npm@next // For the most recent release
latest
and next
version tags!
-g
flag is specifically for packages you want installed globally as a lot of users will get to this page and merely copy/paste without realizing how they are about to impact their package ecosystem. We've all been "that guy"
First remove old version, then run literally the following:
npm install express@3.X
or
npm install express@4.X
and for stable or recent
npm install -g npm@latest // For the last stable version
npm install -g npm@next // For the most recent release
X
or a stand-in for some numeric version number?
npm install express@3.X
, and it seemed to work. Is that a feature or an accident of the way npm
parses the version number?
npm
parses it, see: docs.npmjs.com/misc/semver#x-ranges-12x-1x-12-
X
.
In my opinion that is easiest and fastest way:
$ npm -v
4.2.0
$ npm install -g npm@latest-3
...
$ npm -v
3.10.10
npm install -g npm@version
in which you want to downgrade
npm install -g npm@3.10.10
-g
(for global install, then it lands in your current project dir/node_modules
) and yes, --save
or --save-dev
to get an entry in package.json
you can update your npm package by using this command:
npm install <package_name>@<version_number>
example: npm install yargs@12.0.2
You can use the following command to install a previous version of an npm package:
npm install packagename@version
I have a general way to solve this type of problems, which could be helpful too, especially when cloning repositories to run them locally, but requires a little more analysis of the versions.
With the package npm-check-updates
I verify the versions of the packages (according to the package.json file) that are not declared in their latest available versions, as shown in the figure (https://www.npmjs.com/package/npm-check-updates):
https://i.stack.imgur.com/rHXdc.png
With this information we can verify the update status of the different packages and make decisions as to which packages to upgrade / degrade and which ones do not.
Assuming that we decided to update all the packages as they are listed, we can use the ncu -u
command which only modifies your package.json file. Run npm install
to update your installed packages and package-lock.json.
Then, depending on the requirements of the repository, we can refine what is needed, installing the specific versions with npm view <package> versions
and npm install <package>@<version>
If you have to install an older version of a package, just specify it
npm install @ For example: npm install express@3.0.0
You can also add the --save flag to that command to add it to your package.json dependencies, or --save --save-exact flags if you want that exact version specified in your package.json dependencies.
The install command is documented here: https://docs.npmjs.com/cli/install
If you're not sure what versions of a package are available, you can use:
npm view versions And npm view can be used for viewing other things about a package too. https://docs.npmjs.com/cli/view
If you are using a mac, you can always use nvm and if windows, then you can use nodist
For window: https://changelog.com/posts/nodist-node-version-manager-for-windows
For Mac: https://github.com/nvm-sh/nvm
The easiest way I found: add package name with the version in package.json
and then run npm install
"next-seo": "^5.4.0",
"next-themes": "^0.1.1",
"nextjs-progressbar": "^0.0.14",
Use npm config set save-exact=true
if you want to install the exact version
For yarn users:
yarn add package_name@version_number
On Ubuntu you can try this command.
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Specific version : sudo n 8.11.3 instead of sudo n stable
Success story sharing
npm view <package> versions -json
to see every single version, avoiding the ellipsis at the end of a list with many versions.npm install express@3.0.0
, you won't get the exact version 3.0.0, you'll get the latest 3.x.x version. To get the specific version, you have to usenpm install express@3.0.0 --save-exact
. See this blog post: 60devs.com/npm-install-specific-version.htmlnpm install express@3.0.0
will get you exactly version 3.0.0.npm install express@^3.0.0
would get you the latest 3.x.x.--save-exact
affects how it's written to packages.json, which I already covered in my answer. Also note,--save-exact
has to be used in combination with either--save
or--save-dev
- it's not enough to use it on its own.