# tupac

> Ghetto bundler

Latest version **0.2.3** (published 2017-05-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install tupac
pnpm add tupac
yarn add tupac
bun add tupac
```

Provides the command `tupac`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.3 |
| Published | 2017-05-08 |
| First published | 2016-12-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 8 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 3 |
| Maintainers | kigiri |

## Links

- npm: https://www.npmjs.com/package/tupac
- Repository: https://github.com/kigiri/tupac
- Homepage: https://github.com/kigiri/tupac#readme
- Issues: https://github.com/kigiri/tupac/issues
- npm.io page: https://npm.io/package/tupac

## Dependencies (8)

- [mz](https://npm.io/package/mz.md) ^2.6.0
- [ws](https://npm.io/package/ws.md) ^1.1.1
- [cssnano](https://npm.io/package/cssnano.md) ^3.10.0
- [uglify-js](https://npm.io/package/uglify-js.md) ^2.8.12
- [babel-core](https://npm.io/package/babel-core.md) ^6.23.1
- [node-watch](https://npm.io/package/node-watch.md) ^0.4.1
- [http-server](https://npm.io/package/http-server.md) ^0.9.0
- [babel-preset-latest](https://npm.io/package/babel-preset-latest.md) ^6.22.0

## Recent versions

- 0.2.3 (latest) — 2017-05-08
- 0.3.0 — 2017-04-15
- 0.2.2 — 2017-02-05
- 0.2.1 — 2016-12-30
- 0.2.0 — 2016-12-28
- 0.1.1 — 2016-12-27
- 0.1.0 — 2016-12-27
- 0.0.1 — 2016-12-26

## README

# tupac
`tupac` Mad easy ghetto bundler (2pac ur JS)

A stupid simple in browser developement bundler with close to 0 overhead and no configuration needed.


## Installing:
```shell
npm install tupac -g
```
This will install `tupac` globally so that it may be run from the command line

## usage
```shell
### create your project folder
mkdir my-thug-project-js && cd "$_"

### init package.json
yarn init -y

### install some stuff
yarn add lodash

### create the entry point
echo "document.body.textContent = require('lodash/words')('Reality is wrong. Dreams are for real.').join(' - ')" >> app.js

### start the server
tupac
```
You can now edit your JS like a thug and enjoy effortless hotreload and code splitting.

![](https://github.com/kigiri/tupac/raw/master/poster.jpg)


## Available Options:
`-E` or `--entry` javascript app entry file (defaults to app.js)

`-w` or `--watch` enable websocket server and watch changes for hot module reload (defaults to true, 2pac is always hot)

`-t` or `--title` index file title

Implement also all the options from http-server

*see the documentation for [http-server](https://github.com/indexzero/http-server)*

## Browser API:
### Hot Reload Event
After a hot reload, the event `hotreload` is triggered from `window`
```javascript
window.addEventListener('hotreload', ({ detail: module }) => console.log(module))
```

### Globals
All modules are called from `window` and `this` is bound to `window`.

`__tupac_modules__` is an object containing all the module data.

`__tupac_get_default__` is a function that return the exported data (handeling es6 modules)

if not present a mocked `process` is created (some modules failed without it)

## Notice:
  - Pure JS only (if you need support for more TypeScript, JSX or esle : go webpack)
  - In browser async compilation of the requires *(if a module exports a `Promise` it will wait for it's resolve value)*
  - little support for es6 modules 
  - !! NOT FOR PRODUCTION !!

## FAQ:
#### Q. wat about css dog ?!
A. I like to use [glamor](https://github.com/threepointone/glamor) but any css-in-js alternative should do the job

#### Q. No jsx ?! Are you out of your mind ???!
A. ¯\\\_(ツ)\_/¯

*try hyperscript and hyperscript-helpers for react. I made my own version of those tools that I should release one day, soon.*

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