To run TypeScript or JavaScript on your own machine you need Node.js. First check whether you already have it.
node --version
I get a number starting with v. Does that mean I am set?
It does. If you see command not found, it is not installed yet. The simplest route is the LTS installer from the official site — LTS means long-term support, the stable line.
I have also seen people juggling several versions.
Reach for a version manager like nvm, Volta, or mise once you actually hit a project that needs a different version. There is no need to install everything up front.
Next is pnpm, the tool that manages the libraries a project uses and the commands you run during development.
npm install -g pnpm
pnpm --version
Where did npm come from?
It ships with Node.js. You can develop perfectly well with npm alone. Enginemix uses pnpm for its speed and the way it handles disk space.
Once you are inside a project, three commands will carry you a long way.
pnpm install
pnpm add -D typescript
pnpm dev
install gets what the project needs, add brings in something new. What is -D?
It marks something as used only while developing. Type checkers and test runners are not part of the app you ship, so they are recorded separately.
And the dev in pnpm dev is not a command pnpm invented. It is a name written in the project's package.json.
{
"packageManager": "pnpm@11.3.0",
"scripts": {
"dev": "next dev",
"build": "next build"
}
}
So dev means something different in every project.
Right. Before running a command you do not recognize, get in the habit of reading its definition in scripts. Then you know what is about to happen.
The packageManager line matters too. It records which pnpm version this project expects.
Are the library versions recorded somewhere as well?
Running pnpm install produces pnpm-lock.yaml, which lists every version that was actually installed. Share that file and someone else can reproduce the same combination exactly.
That is what makes publishing an environment worth anything. Next, the tool that records the code you write.

