diff --git a/package.json b/package.json index 7da0ee72d1..9970916abc 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "types": "./types/index.d.ts", "imports": { "#hljs": "./build/lib/index.js", + "#hljs/compat": "./build/compat.cjs", "#tools/*": "./tools/lib/*.js" }, "type": "module", diff --git a/test/api/highlight.cjs b/test/api/highlight.cjs index 0dbe49b7d2..14045ff75f 100644 --- a/test/api/highlight.cjs +++ b/test/api/highlight.cjs @@ -1,6 +1,7 @@ 'use strict'; - -const hljs = require('#hljs'); + +const hljs = require('#hljs/compat'); + describe('.highlight()', () => { it('should works without continuation', () => { diff --git a/tools/build_node.js b/tools/build_node.js index f005b188fc..a25e463668 100644 --- a/tools/build_node.js +++ b/tools/build_node.js @@ -31,6 +31,12 @@ async function buildNodeLanguage(language) { await rollupWrite(input, output); } +async function buildNodeBundle() { + const input = { ...config.rollup.node.input, input: `${process.env.BUILD_DIR}/lib/index.js` }; + const output = { ...config.rollup.node.output, file: `${process.env.BUILD_DIR}/compat.cjs`, format: 'cjs' }; + await rollupWrite(input, output); +} + async function buildNodeHighlightJS() { const input = { ...config.rollup.node.input, input: `src/highlight.js` }; const output = { ...config.rollup.node.output, file: `${process.env.BUILD_DIR}/lib/core.js` }; @@ -83,6 +89,9 @@ async function buildNode(options) { log("Writing highlight.js"); await buildNodeHighlightJS(); + + log("Writing compat.cjs"); + await buildNodeBundle(); } module.exports.build = buildNode;