How do I install a package with npm with a different/custom module name

B T picture B T · Jun 15, 2013 · Viewed 19.7k times · Source

I want to install a specific revision from a github tarball named something like "mymodule" and name it something like "mymoduleTemp", and then load a potentially different version of it that will take the real name "mymodule".

So, how do I do the first thing? I'm looking for something like:

npm install https://github.com/me/mymodule/tarball/someTag -name mymoduleTemp

Is there any way to do that? A nice-to-have:

  • If mymodule already exists, it doesn't get clobbered when mymoduleTemp is installed (ie ideally the process wouldn't be to install as mymodule then rename the folder)

Answer

Pavel Zubkou picture Pavel Zubkou · Mar 11, 2019

Since [email protected] you could install package under a custom module name. [email protected] introduces support for package aliases.

To install a tarball under custom module name use custom-name@tarball-url argument, e.g. install specific express tarball as my-express module:

npm i my-express@https://github.com/expressjs/express/archive/4.16.3.tar.gz

This feature also allows to alias packages published to npm registry:

npm i express@npm:@my-scope/express