# @startupjs/bundler

> Opinionated scripts and configs to develop a react-native-web project

Latest version **0.63.3** (published 2026-11-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install @startupjs/bundler
pnpm add @startupjs/bundler
yarn add @startupjs/bundler
bun add @startupjs/bundler
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads; no types; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.63.3 |
| Published | 2026-11-05 |
| First published | 2019-09-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 13 |
| Unpacked size | 19 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Pavel Zhukov |
| Maintainers | cray0000, yska, zag2art, fctsvirus, maestro.sc, byshock, anagami, rabbit-abyss, tarlord, nariman322 |

## Links

- npm: https://www.npmjs.com/package/@startupjs/bundler
- npm.io page: https://npm.io/package/@startupjs/bundler

## Dependencies (13)

- [lodash](https://npm.io/package/lodash.md) ^4.17.20
- [connect](https://npm.io/package/connect.md) ^3.7.0
- [@svgr/core](https://npm.io/package/@svgr/core.md) ^8.1.0
- [remark-gfm](https://npm.io/package/remark-gfm.md) 4.0.1
- [@babel/core](https://npm.io/package/@babel/core.md) ^7.9.0
- [@mdx-js/mdx](https://npm.io/package/@mdx-js/mdx.md) ^3.0.0
- [@svgr/plugin-jsx](https://npm.io/package/@svgr/plugin-jsx.md) ^8.1.0
- [@startupjs/server](https://npm.io/package/@startupjs/server.md) ^0.63.3
- [@svgr/plugin-svgo](https://npm.io/package/@svgr/plugin-svgo.md) ^8.1.0
- [babel-preset-startupjs](https://npm.io/package/babel-preset-startupjs.md) ^0.63.1
- [@babel/plugin-syntax-jsx](https://npm.io/package/@babel/plugin-syntax-jsx.md) ^7.0.0
- [@startupjs/babel-plugin-eliminator](https://npm.io/package/@startupjs/babel-plugin-eliminator.md) ^0.63.1
- [@startupjs/babel-plugin-startupjs-plugins](https://npm.io/package/@startupjs/babel-plugin-startupjs-plugins.md) ^0.63.1

## Recent versions

- 0.63.3 (latest) — 2026-11-05
- 0.62.6 (maintenance-0.62) — 2026-10-13
- 0.64.0-alpha.10 (alpha) — 2026-06-28
- 0.60.0-canary.25 (canary) — 2025-12-27
- 0.56.0-alpha.69 (next) — 2024-04-16
- 0.63.2 — 2026-10-19
- 0.64.0-alpha.2 — 2026-06-24
- 0.64.0-alpha.0 — 2026-06-24
- 0.63.1 — 2026-06-24
- 0.63.0 — 2026-06-24
- 0.62.4 — 2026-06-17
- 0.62.3 — 2026-06-16
- 0.63.0-alpha.3 — 2026-05-11
- 0.63.0-alpha.0 — 2026-05-04
- 0.62.0 — 2026-05-04
- … 338 more at https://npm.io/package/@startupjs/bundler/versions

## README

# startupjs bundler
> Opinionated scripts and configs to develop a react-native-web project

## Requirements

```
react-native-svg: >= 14.0.0
```

## Usage

TBD

## Async chunks support

Pass `ASYNC=1` env var when building to enable the asynchronous chunks
support. This will make each node module from `/node_modules/`
and each component from the `/components/` folder to be its own small chunk
loaded asynchronously.

This is useful when you are using dynamic `import()` in your code.

When the `ASYNC=1` is passed, the files with the extension `.async.js`
will take priority over the plain `.js` files. This enables you
to move the asynchronous dynamic `import()` statements into their own files.

Duplicating your dependencies in `.js` and `.async.js` files enables
you to have your codebase running in environments which don't
support the dynamic `import()` yet, for example the react-native Metro builder.

Your production server must have HTTP/2 support, otherwise you'll have a connection
limit of around 6 connections per hostname and you will notice your website
loading VERY SLOOOOW in production (if you set the Network Throttling to `Slow 3G`).

If you use Google Load Balancer and serve your content through HTTPS, then you
already have the HTTP/2 enabled without having to handle HTTP/2 in your Node.js app:

https://cloudplatform.googleblog.com/2015/10/Full-Speed-Ahead-with-HTTP2-on-Google-Cloud-Platform.html

https://ma.ttias.be/view-http-spdy-http2-protocol-google-chrome/

## Export from stylus and css files

We can export variables directly from stylus into js. Here is an example:

1. In `ShoppingCart/index.styl` file:

```styl
// allow overrides from global configuration
$this = merge({
  bgColor: $UI.colors.primary,
  height: 10u
}, $UI.ShoppingCart, true)

.root
  height: $this.height
  background-color: $this.bgColor

:export
  config: $this
  colors: $UI.colors
  foobar: 42
```

2. Now import variables `colors`, `config` and `foobar` in the `ShoppingCart/index.js` file:

```jsx
import STYLES from './index.styl'

const {
  config: { bgColor },
  colors,
  foobar
} = STYLES

export default function ShoppingCart () {
  console.log('Background color is:', bgColor)
  console.log('Available colors:', colors)
  console.log('Magic number FooBar:', foobar)
  return <View styleName='root' />
}
```

## MIT License

Copyright (c) 2018 Pavel Zhukov

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