stencil icon indicating copy to clipboard operation
stencil copied to clipboard

fix(compiler): support rollup's external input option

Open awk opened this issue 3 years ago • 6 comments

Pluck the external option from the stencil config and pass it through to rollup.

Pull request checklist

Please check if your PR fulfills the following requirements:

  • [X] Tests for the changes have been added (for bug fixes / features)
  • [X] Docs have been reviewed and added / updated if needed (for bug fixes / features)
  • [X] Build (npm run build) was run locally and any changes were pushed
  • [X] Unit tests (npm test) were run locally and passed
  • [X] E2E Tests (npm run test.karma.prod) were run locally and passed
  • [ ] Prettier (npm run prettier) was run locally and passed

Pull request type

Please check the type of change your PR introduces:

  • [X] Bugfix
  • [ ] Feature
  • [ ] Refactoring (no functional changes, no api changes)
  • [ ] Build related changes
  • [ ] Documentation content changes
  • [ ] Other (please describe):

What is the current behavior?

GitHub Issue Number: https://github.com/ionic-team/stencil/issues/3226

What is the new behavior?

The external option is now supported and works when added to the rollupConfig.inputOptions

Does this introduce a breaking change?

  • [ ] Yes
  • [X] No

Testing

In my project (private - sorry) which has a complex set of module dependencies I can see that the desired module is no longer included in the stencil output.

Other information

awk avatar Jan 29 '22 00:01 awk

Thanks for this PR! I see the accompanying issue and have labeled this PR for the team to take a look at both a little more closely.

rwaskiewicz avatar Jan 31 '22 13:01 rwaskiewicz

@rwaskiewicz Do you have an update on the process for this PR ? Any outstanding questions or issues?

awk avatar Feb 14 '22 13:02 awk

@awk I think the next steps for this PR is for the team to sit down and review the PR. Specifically, we'll be looking at the changes and convincing ourselves that it doesn't conflict with any internal rollup configuration Stencil currently does. While I can't promise an exact timeline, we'll take a look as soon as we get a chance!

rwaskiewicz avatar Feb 15 '22 14:02 rwaskiewicz

In the mean time, I've enabled the rest of CI to run for this PR to make sure the rest of our checks pass

rwaskiewicz avatar Feb 15 '22 14:02 rwaskiewicz

@rwaskiewicz Are there any updates on @awk 's PR? This would also be a very important feature for a project we're developing

TiagoVenceslau avatar Mar 28 '22 22:03 TiagoVenceslau

This would be nice to include. The current workaround I'm using is based on this but with a slight modification:

  rollupPlugins: {
    before: [
      {
        name: 'overwrite-rollup-options',
        options: (options: RollupInputOptions) => ({
          ...options,
          external: ['@package/identifier']
        })
      }
    ]
  },

mikaelkaron avatar Oct 17 '22 21:10 mikaelkaron

@stencil/[email protected] ts tsc --noEmit --project scripts/tsconfig.json && tsx scripts/tech-debt-burndown-report.ts

--strictNullChecks error report

Typechecking with --strictNullChecks resulted in 1077 errors on this branch.

Unfortunately, it looks like that's an increase of 1 over main 😞.

Violations Not on `main` (may be more than the count above)
Path Location Error Message
src/compiler/bundle/bundle-output.ts (155, 15) TS18048
src/compiler/bundle/bundle-output.ts (170, 24) TS18048

reports and statistics

Our most error-prone files
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 22
src/runtime/client-hydrate.ts 20
src/runtime/vdom/test/patch.spec.ts 19
src/runtime/vdom/test/util.spec.ts 19
src/screenshot/connector-base.ts 19
src/testing/puppeteer/puppeteer-element.ts 19
src/dev-server/request-handler.ts 15
src/runtime/connected-callback.ts 15
src/compiler/prerender/prerender-optimize.ts 14
src/compiler/sys/stencil-sys.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
Our most common errors
Typescript Error Code Count
TS2322 338
TS2345 329
TS18048 186
TS18047 99
TS2722 27
TS2532 23
TS2531 19
TS2790 11
TS2454 10
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 22 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 496 WaitForEventOptions
src/compiler/sys/fetch/write-fetch-success.ts 7 writeFetchSuccessSync

github-actions[bot] avatar Jun 24 '24 16:06 github-actions[bot]

PR built and packed!

Download the tarball here: https://github.com/ionic-team/stencil/actions/runs/9649230180/artifacts/1632575740

If your browser saves files to ~/Downloads you can install it like so:

unzip -d ~/Downloads ~/Downloads/stencil-core-4.18.3-dev.1719247795.f2c0cbd.tgz.zip && npm install ~/Downloads/stencil-core-4.18.3-dev.1719247795.f2c0cbd.tgz

github-actions[bot] avatar Jun 24 '24 16:06 github-actions[bot]

Add docs for this option in https://github.com/ionic-team/stencil-site/pull/1453

christian-bromann avatar Jun 24 '24 20:06 christian-bromann