feat(compiler): generate export maps on build#5809
Conversation
|
| Path | Error Count |
|---|---|
| src/dev-server/index.ts | 37 |
| src/dev-server/server-process.ts | 32 |
| src/compiler/prerender/prerender-main.ts | 22 |
| src/runtime/vdom/vdom-render.ts | 21 |
| src/runtime/client-hydrate.ts | 20 |
| src/screenshot/connector-base.ts | 19 |
| src/testing/puppeteer/puppeteer-element.ts | 19 |
| src/dev-server/request-handler.ts | 15 |
| src/compiler/prerender/prerender-optimize.ts | 14 |
| src/compiler/sys/stencil-sys.ts | 14 |
| src/runtime/connected-callback.ts | 14 |
| src/sys/node/node-sys.ts | 14 |
| src/compiler/prerender/prerender-queue.ts | 13 |
| src/compiler/sys/in-memory-fs.ts | 13 |
| src/runtime/set-value.ts | 13 |
| src/compiler/output-targets/output-www.ts | 12 |
| src/compiler/transformers/test/parse-vdom.spec.ts | 12 |
| src/compiler/transformers/transform-utils.ts | 12 |
| src/mock-doc/test/attribute.spec.ts | 12 |
| src/compiler/build/compiler-ctx.ts | 11 |
Our most common errors
| Typescript Error Code | Count |
|---|---|
| TS2322 | 351 |
| TS2345 | 330 |
| TS18048 | 193 |
| TS18047 | 76 |
| TS2722 | 27 |
| TS2532 | 24 |
| TS2531 | 19 |
| TS2454 | 14 |
| TS2790 | 11 |
| TS2352 | 9 |
| TS2769 | 8 |
| TS2416 | 7 |
| TS2538 | 4 |
| TS2493 | 3 |
| TS18046 | 2 |
| TS2684 | 1 |
| TS2430 | 1 |
Unused exports report
There are 15 unused exports on this PR. That's the same number of errors on main, so at least we're not creating new ones!
Unused exports
| File | Line | Identifier |
|---|---|---|
| src/runtime/bootstrap-lazy.ts | 21 | setNonce |
| src/screenshot/screenshot-fs.ts | 18 | readScreenshotData |
| src/testing/testing-utils.ts | 198 | withSilentWarn |
| src/utils/index.ts | 145 | CUSTOM |
| src/utils/index.ts | 245 | NODE_TYPES |
| src/utils/index.ts | 269 | normalize |
| src/utils/index.ts | 7 | escapeRegExpSpecialCharacters |
| src/compiler/app-core/app-data.ts | 25 | BUILD |
| src/compiler/app-core/app-data.ts | 116 | Env |
| src/compiler/app-core/app-data.ts | 118 | NAMESPACE |
| src/compiler/fs-watch/fs-watch-rebuild.ts | 123 | updateCacheFromRebuild |
| src/compiler/types/validate-primary-package-output-target.ts | 82 | satisfies |
| src/compiler/types/validate-primary-package-output-target.ts | 82 | Record |
| src/testing/puppeteer/puppeteer-declarations.ts | 485 | WaitForEventOptions |
| src/compiler/sys/fetch/write-fetch-success.ts | 7 | writeFetchSuccessSync |
PR built and packed!Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/9471194069/artifacts/1594214541 If your browser saves files to |
christian-bromann
left a comment
There was a problem hiding this comment.
Some minor comments but overall very cool stuff!
| getModulePath: (rootDir: string, outputTargetDir: string) => | ||
| normalizePath(relative(rootDir, join(outputTargetDir, 'index.js'))), | ||
| getTypesPath: (rootDir: string, outputTargetConfig: d.OutputTargetDist) => | ||
| getTypesPath: (rootDir: string, outputTargetConfig: any) => |
There was a problem hiding this comment.
Any reason we have to type this as any?
There was a problem hiding this comment.
Yes, this was intentional. I'll add a comment
### Release Notes <details> <summary>ionic-team/stencil (@​stencil/core)</summary> ### [`v4.19.0`](https://togithub.com/ionic-team/stencil/blob/HEAD/CHANGELOG.md#-4190-2024-06-26) [Compare Source](https://togithub.com/ionic-team/stencil/compare/v4.18.3...v4.19.0) ### Bug Fixes * **compiler:** support rollup's external input option ([#3227](stenciljs/core#3227)) ([2c68849](stenciljs/core@2c68849)), fixes [#3226](stenciljs/core#3226) * **emit:** don't emit test files ([#5789](stenciljs/core#5789)) ([50892f1](stenciljs/core@50892f1)), fixes [#5788](stenciljs/core#5788) * **hyrdate:** support vdom annotation in nested dsd structures ([#5856](stenciljs/core#5856)) ([61bb5e3](stenciljs/core@61bb5e3)) * label attribute not toggling input ([#3474](stenciljs/core#3474)) ([13db920](stenciljs/core@13db920)), fixes [#3473](stenciljs/core#3473) * **mock-doc:** expose ShadowRoot and DocumentFragment globals ([#5827](stenciljs/core#5827)) ([98bbd7c](stenciljs/core@98bbd7c)), fixes [#3260](stenciljs/core#3260) * **runtime:** allow watchers to fire w/ no Stencil members ([#5855](stenciljs/core#5855)) ([850ad4f](stenciljs/core@850ad4f)), fixes [#5854](stenciljs/core#5854) * **runtime:** catch errors in async lifecycle methods ([#5826](stenciljs/core#5826)) ([87e5b33](stenciljs/core@87e5b33)), fixes [#5824](stenciljs/core#5824) * **runtime:** don't register listener before connected to DOM ([#5844](stenciljs/core#5844)) ([9d7021f](stenciljs/core@9d7021f)), fixes [#4067](stenciljs/core#4067) * **runtime:** properly assign style declarations ([#5838](stenciljs/core#5838)) ([5c10ebf](stenciljs/core@5c10ebf)) * **testing:** allow to re-use pages across it blocks ([#5830](stenciljs/core#5830)) ([561eab4](stenciljs/core@561eab4)), fixes [#3720](stenciljs/core#3720) * **typescript:** remove unsupported label property ([#5840](stenciljs/core#5840)) ([d26ea2b](stenciljs/core@d26ea2b)), fixes [#3473](stenciljs/core#3473) ### Features * **cli:** support generation of sass and less files ([#5857](stenciljs/core#5857)) ([1883812](stenciljs/core@1883812)), closes [#2155](stenciljs/core#2155) * **compiler:** generate export maps on build ([#5809](stenciljs/core#5809)) ([b6d2404](stenciljs/core@b6d2404)) * **complier:** support type import aliasing ([#5836](stenciljs/core#5836)) ([7ffb25d](stenciljs/core@7ffb25d)), closes [#2335](stenciljs/core#2335) * **runtime:** support declarative shadow DOM ([#5792](stenciljs/core#5792)) ([c837063](stenciljs/core@c837063)), closes [#4010](stenciljs/core#4010) * **testing:** add `toHaveLastReceivedEventDetail` event spy matcher ([#5829](stenciljs/core#5829)) ([63491de](stenciljs/core@63491de)), closes [#2488](stenciljs/core#2488) * **testing:** allow to disable network error logging via 'logFailingNetworkRequests' option ([#5839](stenciljs/core#5839)) ([dac3e33](stenciljs/core@dac3e33)), closes [#2572](stenciljs/core#2572) * **testing:** expose captureBeyondViewport in pageCompareScreenshot ([#5828](stenciljs/core#5828)) ([cf6a450](stenciljs/core@cf6a450)), closes [#3188](stenciljs/core#3188) </details>
What is the current behavior?
Stencil does not generate export maps for any entry points.
GitHub Issue Number: N/A
What is the new behavior?
Stencil will generate export maps at build time. This include the default entry point, entry points for the lazy-loader (if applicable), and each custom element (if applicable).
This behavior is gated behind a new config flag.
Documentation
stenciljs/site#1443
Does this introduce a breaking change?
Testing
Unit tests were added for the new behavior.
This feature can be manually tested by installing a build of this branch into the component starter and enabling the
generateExportMapsconfig flag.Other information