# @flatjs/forge

> ## Usages

Latest version **2.4.0** (published 2026-08-18) · MIT license · 0 weekly downloads

## Install

```sh
npm install @flatjs/forge
pnpm add @flatjs/forge
yarn add @flatjs/forge
bun add @flatjs/forge
```

Provides the command `flatjs-forge`.

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.4.0 |
| Published | 2026-08-18 |
| First published | 2021-04-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | >=18.0.0 |
| Dependencies | 20 |
| Unpacked size | 39.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | tcsk2026, tianyingchun, shunqwang |

## Links

- npm: https://www.npmjs.com/package/@flatjs/forge
- npm.io page: https://npm.io/package/@flatjs/forge

## Dependencies (20)

- [rollup](https://npm.io/package/rollup.md) ^4.62.2
- [minimist](https://npm.io/package/minimist.md) ^1.2.8
- [type-fest](https://npm.io/package/type-fest.md) ^5.7.0
- [typescript](https://npm.io/package/typescript.md) ^6.0.3
- [@armit/package](https://npm.io/package/@armit/package.md) ^0.3.1
- [@flatjs/common](https://npm.io/package/@flatjs/common.md) 2.3.0
- [@armit/terminal](https://npm.io/package/@armit/terminal.md) ^0.3.0
- [@armit/file-utility](https://npm.io/package/@armit/file-utility.md) ^0.3.1
- [@rollup/plugin-json](https://npm.io/package/@rollup/plugin-json.md) ^6.1.0
- [@rollup/plugin-alias](https://npm.io/package/@rollup/plugin-alias.md) ^6.0.0
- [@hyperse/config-loader](https://npm.io/package/@hyperse/config-loader.md) ^1.0.9
- [@rollup/plugin-replace](https://npm.io/package/@rollup/plugin-replace.md) ^6.0.3
- [@rollup/plugin-commonjs](https://npm.io/package/@rollup/plugin-commonjs.md) ^29.0.3
- [@flatjs/forge-plugin-dts](https://npm.io/package/@flatjs/forge-plugin-dts.md) 2.3.0
- [@flatjs/forge-plugin-babel](https://npm.io/package/@flatjs/forge-plugin-babel.md) 2.3.0
- [@flatjs/forge-plugin-terser](https://npm.io/package/@flatjs/forge-plugin-terser.md) 2.3.0
- [@rollup/plugin-node-resolve](https://npm.io/package/@rollup/plugin-node-resolve.md) ^16.0.3
- [@flatjs/forge-plugin-cleaner](https://npm.io/package/@flatjs/forge-plugin-cleaner.md) 2.3.0
- [@flatjs/forge-plugin-ts-paths](https://npm.io/package/@flatjs/forge-plugin-ts-paths.md) 2.3.0
- [@flatjs/forge-plugin-multi-input](https://npm.io/package/@flatjs/forge-plugin-multi-input.md) 2.3.0

## Recent versions

- 2.4.0 (latest) — 2026-08-18
- 2.4.0-next.0 (next) — 2026-08-03
- 2.3.10 — 2025-10-15
- 2.3.9 — 2025-07-03
- 2.3.9-next.4 — 2025-06-11
- 2.3.9-next.3 — 2025-06-10
- 2.3.9-next.2 — 2025-05-22
- 2.3.9-next.1 — 2025-05-13
- 2.3.9-next.0 — 2025-05-08
- 2.3.8 — 2025-04-22
- 2.3.7 — 2025-03-31
- 2.3.6 — 2025-03-24
- 2.3.6-next.0 — 2025-03-14
- 2.3.5 — 2025-03-06
- 2.3.4 — 2025-03-05
- … 159 more at https://npm.io/package/@flatjs/forge/versions

## README

# @flatjs/forge

## Usages

### The configuration file `flatjs-forge.config.ts`;

```ts
import { defineConfig } from '@flatjs/forge/define-config';

export default defineConfig({
  output: {
    format: 'cjs',
  },
  plugin: {
    pluginConfigs: {
      babelOptions: {
        usePreset: 'react',
      },
      terserOptions: true,
    },
  },
});
```

Note:

1. Can use `.mts` extension if your package.json without `"type": "module"`
2. Can use `.ts`,`.mts` extension if your package.json with `"type": "module"`

### Forge CLI

define `scripts` in package.json

```json
{ "forge": "flatjs-forge" }
```

1. Using Npm scripts

- `yarn forge build --dts`
- `yarn forge build --dts -f=esm`

2. Using npx

- `npx flatjs-forge build --dts`
- `npx flatjs-forge build --dts -f=esm`

3. Show basic tips

- `yarn forge -h`
- `yarn forge help`

- `npx flatjs-forge -h`
- `npx flatjs-forge help`

4. Show help info for command `build`

- `yarn forge build -h`
- `yarn forge help build`

- `npx flatjs-forge build -h`
- `npx flatjs-forge help build`

Notes: if we must use `--dts=false` instead using `-d=false` to indicate `dts:false`, The same usage goes for the other boolean types (`-c=false` => `--compress=false`)

We should not create folder name like `rollup` in `src/rollup`;

1. while we use `import { moduleX } from rollup`; it will resolve `moduleX` from `src/rollup` instead import from `node_modules`
2. while use `vitest` it may broken cause of wrong `rollup` imported.
3. change `src/rollup` to `src/create-rollup` is ok.

---
_Source: https://npm.io/package/@flatjs/forge · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
