micromark-build
Tiny tool to help us maintain micromark and the micromark extensions.
Contents
What is this?
This package is a small CLI to build micromark development source code (for this monorepo but also for extensions and integrations) into production code.
If you are making a micromark extension or are otherwise integrating with its code, you should use this.
State machines are hard: assertions, debugging messages, and readable names are great to develop with, but slow or big in production, this solves that.
When should I use this?
This package is useful when you are making your own micromark extensions.
Install
In Node.js (version 16+), install with npm:
npm install micromark-build --save-dev
Use
Say we have this folder (called my-micromark-extension
):
dev/lib/core.js
dev/lib/util.js
dev/index.js
And we add micromark-build
in a build
script in package.json
:
"scripts": {
"build": "micromark-build"
},
Now, running that with npm run build
, we’d get:
dev/lib/core.js
dev/lib/util.js
dev/index.js
+lib/core.js
+lib/util.js
+index.js
To expose the production code by default, and the dev/
files on a condition, use an export map in package.json
:
"exports": {
"development": "./dev/index.js",
"default": "./index.js"
},
Users can then use node --conditions development
to use the dev files.
CLI
There is no interface and there are no options. See Use above: run it and get files out.
The following Babel plugins are used:
babel-plugin-unassert
— Removeassert
,power-assert
,uvu/assert
, anddevlop
callsbabel-plugin-undebug
— Removedebug
callsbabel-plugin-inline-constants
— Inline the values frommicromark-util-symbol
You should use devlop
, debug
, and micromark-util-symbol
to develop micromark extensions!
Types
This package is fully typed with TypeScript. It exports no additional types.
Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, micromark-build@2
, compatible with Node.js 16.
Security
See security.md
in micromark/.github
for how to submit a security report.
Contribute
See contributing.md
in micromark/.github
for ways to get started. See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.