Guchho 1.0.5
A JavaScript plugin system, and the documentation tree.
#Released 2026-10-13.
Plugins
#A build can now be extended from JavaScript, in the same shape Rollup uses.
- A plugin is a plain object with a
nameand any of the hooks below. Pass one, or an array, through thepluginsoption ofbuild()andtransform(), or nest them under a top-levelpluginskey in the config file. A config entry may be an object, a factory function, or a path or module specifier to import; the config's plugins run before the caller's. - The hooks are
buildStart,resolveId,load,buildEnd,generateBundle,writeBundleandcloseBundle. Each is optional, each may beasync, and each that can decline does so by returningnull.resolveIdmay instead return an id to claim a specifier, orfalseto mark it external. generateBundlesees the finished bundle before it is written and may rewrite or drop files in place;writeBundlesees it after.order: 'pre'or'post'places a plugin around the default order.- Inside a hook,
thiscarriesmeta,warn(),error()- which fails the build - and, duringgenerateBundle,emitFile().
The engine is a separate native process, so a hook is not a function call: the
child stops mid-build, sends a request up the service pipe, and waits for the
host to answer. The service protocol was revised to carry those callbacks. The
transform hook is declared in the types but not yet wired to the pipeline.
See Writing plugins, the hooks and the generated plugin types.
Documentation
#The whole documentation tree is new: a guide, reference, JavaScript API, C++ embedding, recipes, plugin and resources sections, plus a blog and these release notes. Every directory indexes itself, so the tree reads directly on GitHub.
The API and embedding pages are generated from index.d.ts and the public
headers.
Distribution and tooling
#- The npm publish workflow was reworked, and the Chocolatey and npm package metadata were kept in step with the release.
- Plugin and configuration tests were added on both sides of the bridge, in JavaScript and in C++.
Upgrading
#Nothing here is breaking. Existing configurations build unchanged, and plugins are opt-in.
npm install -g guchho@1.0.5
Full comparison:
v1.0.4…v1.0.5.