npm.io
0.1.1 • Published yesterdayCLI

@n6k.io/build

Licence
MIT
Version
0.1.1
Deps
9
Size
70 kB
Vulns
0
Weekly
0

@n6k.io/build

Static build pipeline for n6k apps. Preprocesses .mdx pages (and passes .ts/.tsx/.js/.jsx entries through), bundles them with esbuild, and optionally renders static HTML.

Install

bun add @n6k.io/build

The package ships raw TypeScript source (no build step) — your bundler compiles it. esbuild, react, and react-dom are peer dependencies resolved from the consuming app's node_modules.

Usage

As a CLI (the n6k-build bin):

n6k-build [appDir] [--debug]

appDir defaults to the current working directory. Configuration is read from <appDir>/build/n6k.build.json.

As a library:

import { build } from "@n6k.io/build";

await build(process.cwd());

MDX components

The MDX provider (useMDXComponents) is resolved, in order:

  1. mdxComponents in n6k.build.json — a package specifier or path, e.g. "@n6k.io/ui/lib/mdx-components".
  2. <appDir>/mdx-components.tsx, if present.
  3. Otherwise none — MDX renders with its built-in default components.

This package has no dependency on @n6k.io/ui; apps opt into a component set via the mdxComponents config field.

Peer dependencies

esbuild, react, and react-dom are resolved from the consuming app's node_modules. Optional integrations (@n6k.io/db, @tanstack/react-query, @storybook/react, storybook, vite) are declared as optional peers and only needed when you use the matching entry point.

Development

bun install
bun test         # run the test suite
bun run typecheck
bun run fmt      # format with prettier
bun run ci       # fmt:check + typecheck + test (the CI gate)

CI runs bun ci on every push and pull request to main. Pushing a v* tag runs the same gate and then publishes the package to npm (.github/workflows/publish.yml).

License

MIT