lofi-bundler

1.0.1 • Public • Published

lofi-bundler

A simple typescript bundler utility for projects with zero dependencies.

What does it do?

Walk through all files in your project (and only your project, sorry no node_modules or other folders) and concatenates a single copy of all files together in one typescript bundle.

Why?

  • Node isn't the only cool guy around, there is this thing called the "browser", and we need an intermediate step (ie, this project's output) to get there.
  • Typescript doesn't support anything outside of AMD and System for the browser.
  • Because sometimes a project is simple enough, and we'd like to package it for a browser, in addition to node.
  • No worrying about babel configs, AMD, or System, just good old-fashioned tscing to a single file, and transform to browser.
  • Because I can.

Getting Started

  1. install using yarn add lofi-bundler
  2. add config to your package.json:
  {
    "config": {
      "lofi-bundler": {
        "entry": "entry-file.ts",
        "target": "target-file.ts",
        "include": "optional-include-file.ts"
      }
    }
  }
  1. run the cli lofi-bundler
  2. use output ts file... Perhaps as a temporary file to run tsc on?
  3. congratulate yourself on going lofi!

API

You can as well use the methods provided from the cli programmatically:

import { traceConcat } from 'logi-bundler';
traceConcat(file)
  .then(src => fs.writeFileSync('bundle.ts', src));

Recipes

This was taken from a project (thaw.js), which is a small utility that can be used in both node and the browser.

{
  scripts: {
    "test": "jest",
    "dist": "tsc --outDir dist",
    "browser": "lofi-bundler; tsc browser.ts --target es5 --module commonjs; rm browser.ts",
    "build": "rm -rf ./dist; npm run dist; git add ./dist; npm run browser"
  }
}

Warnings

  • Default exports: Not supported, don't use them. Naming isn't guaranteed.

Package Sidebar

Install

npm i lofi-bundler

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

27.5 kB

Total Files

8

Last publish

Collaborators

  • robertleeplummerjr