Skip to main content

packup v0.1.1


Zero-config web application packager in Deno.

⚠️ This tool is still in its early development stage.


  • 📦 Bundle web application like Parcel.
  • ✨ Support TypeScript out of the box.
  • 🦕 Deno-compatible ES Modules resolution.
  • 💨 Fast build with esbuild-wasm bundler.


Install via

deno run -A

Write HTML and JavaScript:


  <script src="./main.ts"></script>
  <h1>Hi from packup!</h1>


console.log("hello world");

packup has the development server builtin. Run the following command to start the server.

packup index.html

Then open http://localhost:1234/ in your browser.

See packup serve -h and packup build -h for more usages.


You can type check the script with Deno.

You need the following tsconfig.json for your frontend scripts correctly type checked.

  "compilerOptions": {
    "lib": ["esnext", "dom"]

If you use vscode you need to set ‘deno.config’ property in .vscode/settings.json file to point the tsconfig.json:

  "deno.enable": true,
  "deno.lint": true,
  "deno.unstable": true,
  "deno.config": "./tsconfig.json"

If you’d prefer to use CLI directly to type check your script, you can use the following command for it:

deno cache --config tsconfig.json <script>

See the example repository for more details.

Advanced usages

If you want to use packup without installing globally, you can use the following command.

deno run --allow-read --allow-write
deno run -A <your parameters>

The first command ensures the esbuild wasm installed on your machine. The second command is the actual entrypoint of the packup program.

0.2.0 roadmap

  • twind example
  • Make esbuild.wasm path configurable
  • –public-url
  • optimize (minify) option
  • css import support
  • image import support
  • scss @import support

1.0 roadmap

  • import map support
  • sourcemap support

Prior art