JavaScript in Gitpod

Gitpod comes with great built-in support for JavaScript, TypeScript, and tools like Node.js, npm, and Yarn pre-installed. Still, depending on your project, you might want to further optimize the experience.


Here are a few JavaScript example projects that are automated with Gitpod:

Repository Description Try it
Tesseract.js Pure JavaScript OCR for more than 100 Languages Open in Gitpod
freeCodeCamp’s open source codebase and curriculum Open in Gitpod
Mozilla PDF.js PDF.js is a PDF viewer that is built with HTML5 Open in Gitpod

Start tasks

Many JavaScript projects these days use some sort of build tool for things like bundling, linting, code-splitting and so on and they also use a package manager, typically either npm or Yarn for managing dependencies.

You can automate the process of installing dependencies and starting any tasks like build, lint, test and so on at the workspace startup, for doing so please create a .gitpod.yml file in the root of your project and add the tasks you want to be automated. An example might look like this:

language icon language: 
  - init: npm install && npm run build
    command: npm run dev
In the above example, we are telling Gitpod to run what is in the `init` phase at the time of workspace initialization and then afterwards run whatever is in the `command` phase.

Read more about start tasks.

Node Versions

Gitpod comes with the latest stable Node.js version pre-installed but let’s say your project uses a different version of node (say 14.8.0 for example), well the good news is that Gitpod also comes with nvm (a tool used to manage multiple active Node.js versions) installed. To install and configure the desired version of node create a .gitpod.Dockerfile and add the following to it:

language icon language: 
FROM gitpod/workspace-full:latest

RUN bash -c 'VERSION="14.8.0" \
    && source $HOME/.nvm/ && nvm install $VERSION \
    && nvm use $VERSION && nvm alias default $VERSION'

RUN echo "nvm use default &>/dev/null" >> ~/.bashrc.d/51-nvm-fix

and then in your .gitpod.yml reference your .gitpod.Dockerfile as shown below:

language icon language: 
  file: .gitpod.Dockerfile

Then, after committing your changes, start a new workspace, the version for that workspace will be what you’ve specified in your .gitpod.Dockerfile.

Using ESLint for linting

If your project’s package.json does not mention ESLint as a dependency then you have to install it first. For installing it add the following to the end of the init phase of your .gitpod.yml as shown:

language icon language: 
  - init: npm install && npm run build && npm install -g eslint

and then search for eslint in the extensions tab and then install it from there using the install button as shown in the screenshot.

Install ESLint in Gitpod

Making Live Reload work in Rollup based projects like Svelte

This section was moved into Svelte guide.

Further Reading

Was this helpful?