---
title: "Installation Methods"
description: "Review our alternate installation methods for Sentry using Nest.js."
url: https://docs.sentry.io/platforms/javascript/guides/nestjs/install/
---

# Installation Methods | Sentry for Nest.js

* #### [CommonJS (CJS)](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md)

  Learn about running Sentry in an CJS application.

* #### [ESM (MJS)](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm.md)

  Learn about running Sentry in an ESM application.

* #### [ESM Without CLI Flag](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm-without-import.md)

  Learn about running Sentry in an ESM application, without the --import flag.

## [How To Decide Which Installation Method To Use](https://docs.sentry.io/platforms/javascript/guides/nestjs/install.md#how-to-decide-which-installation-method-to-use)

Most node applications today are either written in or compiled to CommonJS (CJS), which uses `require()` to load modules. Our recommended installation method when using CommonJS is to require the `instrument.js` file at the top of your application. However, if your application is run in [ECMAScript Modules](https://nodejs.org/api/esm.html#introduction) (ESM) mode, this will not work, in which case you can follow the [ESM docs](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm.md).

Note that even if your application is written in ESM (using `import`), it may still be *run* in CJS. In this case, you should follow the [CommonJS instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md).

### [My application uses the default Nest.js setup](https://docs.sentry.io/platforms/javascript/guides/nestjs/install.md#my-application-uses-the-default-nestjs-setup)

Nest.js transpiles to CJS by default, so you should follow the [CommonJS installation instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md). Keep reading if you have a more customized application or build setup.

### [My application uses `require`](https://docs.sentry.io/platforms/javascript/guides/nestjs/install.md#my-application-uses-require)

If you're using `require()` in your application, you should follow the [CommonJS instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md).

### [My application uses `import`](https://docs.sentry.io/platforms/javascript/guides/nestjs/install.md#my-application-uses-import)

If you're using `import` in your application, your installation method depends on how your application is *run*. If you compile your application (for example, into a `/dist` folder or similar) before running it, you need to check how the compiled code looks like. Is the compiled code using `require`? Then you should follow the [CommonJS instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md). If the compiled code is using `import`, you should follow the [ESM instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm.md).

If you do not compile your code, you'll need to follow the [ESM instructions](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm.md).

## Pages in this section

- [CommonJS (CJS)](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/commonjs.md)
- [ESM (MJS)](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm.md)
- [ESM (MJS)](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm__v8.x.md)
- [ESM Without CLI Flag](https://docs.sentry.io/platforms/javascript/guides/nestjs/install/esm-without-import.md)
