GitHunt
FL

floriancargoet/vite-plugin-ink

A Vite plugin to compile and hot-reload Inkle's ink files

vite-plugin-ink

A Vite plugin to compile and hot-reload Inkle's ink files

Installation

npm install --save-dev vite-plugin-ink

Vite configuration

In vite.config.json:

import { defineConfig } from "vite";
import { ink } from "vite-plugin-ink";

export default defineConfig({
  plugins: [ink()],
});

TypeScript

TypeScript doesn't know that .ink files export a Story.
You can tell it by adding a ink-env.d.ts file in your src/ folder:

/// <reference types="vite-plugin-ink/global" />

(you can also add this line to the existing vite-env.d.ts.)

Importing a story

import story from "./story.ink"; // default import
// OR
import { story } from "./story.ink"; // named import

Hot reload

To accept hot-reload updates in your application:

import { story, onHotReload } from "./story.ink";

onHotReload((newStory) => {
  // Do something with the new story!
  // Recommended: reset the DOM and replay old choices on the new story
})

You'll find a minimal project with hot reloading in the examples/ directory.

Contributors

MIT License
Created November 22, 2023
Updated October 21, 2025