mirror of
https://github.com/kamranahmedse/driver.js.git
synced 2026-10-31 20:31:43 +08:00
Two separate vite runs rather than one multi-entry build. Multi-entry splits the shared popover primitive into a chunk, which would make the tour bundle depend on a second file and cost every existing user bytes for a feature they may never use; it also merged both stylesheets into driver.css. Standing the entries alone keeps driver.css byte-identical to master and the tour bundle within ~120 bytes of it, and lets hints be used without the tour. Importing both duplicates the primitive (~2KB gzip), which is safe because the copies only handle their own popovers. The hints run writes to dist-hints/ and the postbuild folds it into dist/. That indirection is not incidental: vite-plugin-dts takes its entry from package.json's `types` field when bundling, not from the lib entry, so pointing it at hints emits the tour's API under the hints name and overwrites dist/driver.js.d.ts. api-extractor rolls up the hints declarations from an explicit entry instead. hints/package.json is a resolution shim for legacy node10, which predates `exports`; attw is green across node10, node16 ESM/CJS and bundler for both entries. sideEffects marks only CSS, so bundlers can drop unused code from either entry. Sizes (gzip): tour 6.7KB unchanged in CSS and ~6.8KB in JS, hints 4.2KB JS + 0.4KB CSS standalone.
32 lines
880 B
JSON
32 lines
880 B
JSON
{
|
|
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
|
|
|
|
"projectFolder": ".",
|
|
"mainEntryPointFilePath": "<projectFolder>/dist-types/hints.d.ts",
|
|
|
|
"compiler": {
|
|
"tsconfigFilePath": "<projectFolder>/tsconfig.json"
|
|
},
|
|
|
|
"dtsRollup": {
|
|
"enabled": true,
|
|
"untrimmedFilePath": "<projectFolder>/dist/hints.d.ts"
|
|
},
|
|
|
|
"docModel": { "enabled": false },
|
|
"apiReport": { "enabled": false },
|
|
"tsdocMetadata": { "enabled": false },
|
|
|
|
"messages": {
|
|
"compilerMessageReporting": {
|
|
"default": { "logLevel": "none" }
|
|
},
|
|
"extractorMessageReporting": {
|
|
"default": { "logLevel": "warning" },
|
|
// The package documents its API in the docs site rather than with TSDoc
|
|
// release tags, so every export would otherwise warn.
|
|
"ae-missing-release-tag": { "logLevel": "none" }
|
|
}
|
|
}
|
|
}
|