diff --git a/rollup.config.js b/rollup.config.js index b0d853c236..c6153365f7 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -18,6 +18,13 @@ const docsifyConfig = { outputName: 'docsify', title: 'Docsify', }; +const docsifyEsmConfig = { + inputPath: 'src/core/module.js', + outputDir: 'dist', + outputName: 'docsify.esm', + title: 'Docsify', + format: 'es', +}; // Plugins const pluginPaths = await glob(['src/plugins/*.js', 'src/plugins/*/index.js']); @@ -65,8 +72,9 @@ const baseConfig = { const bundleConfigs = []; // Generate rollup configurations -[docsifyConfig, ...pluginConfigs].forEach(bundleConfig => { - const { inputPath, outputDir, outputName, title } = bundleConfig; +[docsifyConfig, docsifyEsmConfig, ...pluginConfigs].forEach(bundleConfig => { + const { inputPath, outputDir, outputName, title, format } = bundleConfig; + const outputFormat = format || baseConfig.output.format; // prettier-ignore const banner = stripIndent` /*! @@ -83,6 +91,7 @@ const bundleConfigs = []; ...baseConfig.output, banner, file: path.join(outputDir, `${outputName}.min.js`), + format: outputFormat, sourcemap: true, }, plugins: [ @@ -101,6 +110,7 @@ const bundleConfigs = []; ...baseConfig.output, banner, file: path.join(outputDir, `${outputName}.js`), + format: outputFormat, }, plugins: [ ...baseConfig.plugins, diff --git a/test/consume-types/example.js b/test/consume-types/example.js index 787dbcab60..17ba2f3f50 100644 --- a/test/consume-types/example.js +++ b/test/consume-types/example.js @@ -26,7 +26,8 @@ await import('prismjs'); // Prism being global is not statically analyzable by the ES Module system so it // will try to execute Docsify's graph before prism.js has finished executed. // This is very odd, I didn't think this was possible. -const { Docsify } = await import('docsify'); +const { Compiler, Docsify, dom, get, marked, prism, slugify, util, version } = + await import('docsify'); const d = new Docsify({ el: '#app', @@ -39,6 +40,7 @@ const d = new Docsify({ }); console.log(d); +console.log(Compiler, dom, get, marked, prism, slugify, util, version); // @ts-expect-error global types not available to ESM window.Docsify;