Skip to main content

⚙️ Fork of deno_installer

Fork of original deno_modern_installer module, with fixes that makes it up-to-date with the latest Deno’s releases.

Latest release: https://github.com/ovsky/deno_modern_installer/releases/

📦 Port of tauri-bundler

You can now easily create installers for your Deno apps, thanks to the amazing work of Tauri 💪

  • Windows: MSI
  • Linux: Debian package, AppImage
  • MacOS: DMG

That beind said, feel free to contribute. If you have any feature idea see Contributing :)

Demo

Before making the installer make sure you have your project as:

+-- MyAppExecutable (.exe if in Windows)
+-- icons
|   +-- icon.ico (Windows)
|   +-- icon.png (MacOS)
|   +-- (See note for Linux)

Note: For Linux you will also need some special icons.

Create a file build.ts, paste and modify as you wish:

import { Installer } from "https://deno.land/x/modern_installer/mod.ts";

const installer = new Installer({
  out_path: `${Deno.cwd()}/dist`,
  src_path: `${Deno.cwd()}/MyAppExecutable${
    Deno.build.os === "windows" ? ".exe" : ""
  }`,
  package: {
    product_name: "MyApp",
    version: "1.0.0",
    description: "App made by a denosaur",
    homepage: "https://github.com/ovsky/deno_modern_installer",
    authors: ["Denosaur"],
    default_run: "MyApp",
  },
  bundle: {
    identifier: "my.deno.app",
    icon: [
      "examples/oak/icons/32x32.png",
      "examples/oak/icons/128x128.png",
      "examples/oak/icons/128x128@2x.png",
      "examples/oak/icons/icon.icns",
      "examples/oak/icons/icon.ico",
    ], // It will look under /icons if the array is empty
    resources: [], // Not tested
    copyright: "2023",
    short_description: "Short description!",
    long_description: "Looooooooooong description!",
  },
});

await installer.createInstaller();

Run:

deno run -A --unstable build.ts

The installer path will be printed out.

Contributing

Requisites:

Build the plugin:

deno_bindgen

Create a installer from the demo app:

cd examples/oak
deno compile app.ts
deno run -A --unstable build.ts