Build utility used by CodeMirror packages
  • JavaScript 100%
Find a file
2026-04-16 10:43:01 +02:00
bin Move to @marijn/testtool 2023-05-25 12:05:33 +02:00
.gitignore Add tempview helper script 2021-04-27 11:03:18 +02:00
.npmignore Add an .npmignore 2021-03-10 12:19:46 +01:00
LICENSE Update maintainer email 2023-01-24 08:42:50 +01:00
package.json Update github link 2026-04-16 10:43:01 +02:00
README.md Move to @marijn/buildtool 2023-05-25 12:05:33 +02:00

Helper scripts to build and test CodeMirror packages.

The exports (build and watch) from this package build packages that conform to the conventions of the various @codemirror packages. They do the following:

  • Mangle the code to convert our /// doc comments to /** */ comments, so that TypeScript will not strip them.

  • Run the TypeScript compiler, catching the output in memory.

  • Run rollup and rollup-plugin-dts on the result to emit the CommonJS and ES modules, as well as a bundled .d.ts file, to dist/.

There's also a cm-buildhelper binary which builds the main file specified as its first argument. This is used by the individual packages in their prepare scripts.


NOTE: This tool will add a /*@__PURE__*/ annotation in front of every top-level function call, to allow tree-shaking of things like Facet.define(...). This is likely to break some styles of code (which, say, uses a side-effecting helper function to build up some top-level data structure), but I wasn't able to find another approach for working with the crude current state of JS dead-code detection tools.


The cm-runtests binary helps run tests. Given a list of directories, it'll run ./test/test-*.js as plain mocha tests, and ./test/webtest-*.js using a Selenium headless browser.

You can also pass it a --server argument to start a test server that you can interact with in your browser.