@beforesemicolon/builder
v2.0.1
Published
Utilities for building npm packages for modules and browsers
Maintainers
Readme
Before Semicolon Builder
Package-building utilities for Before Semicolon projects.
Builder 2.0 is focused exclusively on producing JavaScript packages. The
Markdown documentation builder and its templates were removed. Documentation
sites now belong to
@beforesemicolon/site-builder.
Installation
npm install --save-dev @beforesemicolon/builderBuild modules
buildModules compiles the TypeScript and JavaScript files under src into
ES modules and CommonJS modules. Specification files and client.ts are not
included in the module output.
import { buildModules } from '@beforesemicolon/builder'
await buildModules()The default output is:
dist/
esm/
cjs/Use another source directory when needed:
await buildModules({ directoryPath: './source' })Pass additional esbuild options through esbuildOptions. Builder continues to
own the source entries, output directories, module formats, and its required
plugins.
await buildModules({
esbuildOptions: {
keepNames: false,
target: 'es2022',
},
})Build a browser bundle
buildBrowser bundles a browser entry point with esbuild. It defaults to
src/client and writes dist/client.js with a source map.
import { buildBrowser } from '@beforesemicolon/builder'
await buildBrowser()Custom entry and output paths are supported:
await buildBrowser({
entry: './src/browser.ts',
out: './dist/browser.js',
})Additional esbuild options can customize the browser build without replacing its entry or output file. Custom plugins run after Builder's required plugin.
await buildBrowser({
esbuildOptions: {
keepNames: false,
sourcemap: false,
},
})Migrating from Builder 1.x
buildDocs and src/docs are intentionally absent from Builder 2.0. Replace
the old import:
import { buildDocs } from '@beforesemicolon/builder'with:
import { buildDocs } from '@beforesemicolon/site-builder/build-docs'
await buildDocs()Configure Markdown documentation builds with site.config.json in the target
project. Builder does not retain a deprecated alias or compatibility layer for
the removed documentation API.
License
BSD-3-Clause
