---
name: "qjsc"
section: "1"
platform: "linux"
package: "quickjs-ng"
version: "0.17.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/qjsc"
---

# qjsc(1)

QuickJS-NG bytecode compiler

## NAME

qjsc - QuickJS-NG bytecode compiler

## SYNOPSIS

**qjsc** \[*OPTION*\]... \[*FILE*\]...

## DESCRIPTION

QuickJS-NG is a small and embeddable JavaScript engine. It aims to support the latest ECMAScript specification.

The **qjsc** executable runs the JavaScript compiler. It can generate bytecode from source files which can then be embedded in an executable, or it can generate the necessary scaffolding to build a C application which embeds QuickJS.

## OPTIONS

- **-b**

  Output raw bytecode instead of C code.

- **-C**

  Compile as classic JavaScript script. By default, **qjsc** will try to detect if each *FILE* is a JS script or an ES module.

- **-D** *MODULE\_NAME*

  Compile a dynamically loaded module or worker.

- **-e**

  Output **main()** and bytecode in a C file.

- **-m**

  Compile as ECMAScript module. By default, **qjsc** will try to detect if each *FILE* is a JS script or an ES module.

- **-M** *MODULE\_NAME*\[,*CNAME*\]

  Add initialization code for an external C module.

- **-n** *SCRIPT\_NAME*

  Set the script name (as used in stack traces).

- **-N** *CNAME*

  Set the C name of the generated data.

- **-o** *OUTPUT*

  Set the output filename.

- **-p** *PREFIX*

  Add a prefix to generated C names.

- **-P**

  Do not add default system modules.

- **-s**

  Strip the source code. Specify this option twice to also strip debug info.

- **-S** *N*

  Set the maximum stack size to *N* bytes (default is 1 048 576).

## SEE ALSO

### Man pages

[**qjs**(1)](/qjs/1.md)

### Online documentation

Detailed documentation about the project can be found at: https://quickjs-ng.github.io/quickjs/
