Philipp Wrann
Philipp Wrann

Reputation: 1849

Different node version for different projects, is there a way of telling node which version to use?

I have a pretty common (i guess) problem. Many of my projects utilize nodejs, some for business logic, others only for some building task.

I need to have different runtimes in different projects, one of my electron apps requires node 7.10.0, a typical build suite requires node 8.x.

Now i know - i can use sudo n 7.10.0 or sudo n latest to switch the runtime globally on my computer (For those, who dont know this - have a look at "n")

Anyway, IMO this is not so convenient (some times, i need to rebuild all the modules after switching versions, often i forget to switch and so on). Is there a way of telling node which interpreter to use? Can i use a .npmrc file in a project directory to force a specific nodejs version within that subdirectory?

I searched exactly for this (npmrc node version) but was not lucky enough to find something.

Upvotes: 14

Views: 22174

Answers (5)

user3491350
user3491350

Reputation: 11

Exact the other version of node in a folder example C:\Program files\nodejs_v14_17_0

Open a PowerShell prompt that you intend to run project on

$Env:Path = "C:\Program files\nodejs_v14_17_0;" + $Env:PATH

This command prompt will now pick up the alternative nodejs (and npm) for this command prompt only

Then start your program:

npm start

Upvotes: 1

Maksat Rahmanov
Maksat Rahmanov

Reputation: 702

Volta can be used to manage multiple nodejs, npm or yarn versions on different projects on same machine. It's cross-platform.

For example you can run volta pin node@14 in project directory and this will set node to v14 if it exists otherwise it will download and then set it.

More information here https://docs.volta.sh/guide/

Upvotes: 1

Daud Ahmed
Daud Ahmed

Reputation: 328

NVM (Node Version Manager) allow us to use different versions of node quite easily on a single machine. You can have a look at here how to configure and use it.

Upvotes: -1

iamogbz
iamogbz

Reputation: 99

If you're fine with using another tool you could use nvshim.

pip install nvshim  # this is all you need to do

It does not slow your shell startup or switching directories, instead moving the lookup of which node version to when you call node, npm or npx by shimming those binaries. More details in the docs.

Source, I wrote the tool.

Upvotes: 2

Philipp Wrann
Philipp Wrann

Reputation: 1849

Okay, i found a similar quesion:

Automatically switch to correct version of Node based on project

it seems you can install "avn" and use a .node-version file to do exactly that.

sudo npm install -g avn avn-n
avn setup

then you can create a .node-version file in your project and enter the desired version

echo 7.10.0 > .node-version

Then avn will detect that and activate the correct version

Unfortunately i get an additional permissions error. So to make this work, you need to install/configure "n" to work without sudo/root.

Upvotes: 3

Related Questions