Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full WebPack support #1348

Closed
Danielku15 opened this issue Jan 21, 2024 · 0 comments · Fixed by #1386 or #1395
Closed

Full WebPack support #1348

Danielku15 opened this issue Jan 21, 2024 · 0 comments · Fixed by #1386 or #1395
Assignees

Comments

@Danielku15
Copy link
Member

Danielku15 commented Jan 21, 2024

The general goal of this item is to add full WebPack support to alphaTab with minimum to zero configuration. This includes following aspects

  • The alphaTab WebWorkers MUST be able to lauch correctly
  • The alphaTab Audio Worklets MUST be able to launch correctly
  • The codebase in alphaTab SHOULD not need WebPack specific code but the same code should work for all bundlers.
  • Circular references between the different chunks SHOULD be avoided.
  • Examples and Documentation for direct usage in WebPack MUST be available
  • Examples and Documentation for usage via Angular MUST be available
  • Examples and Documentation for usage via React MUST be available

Current envisioned design:

  • File Structure:
    • AlphaTab.core.mjs - holds the main application code which is shared accross the main browser thread and web workers. It exposes the different initialization codes for UI, webworker and audio worklets.
    • AlphaTab.mjs - The main browser entry point. It imports AlphaTab.core and initializes it with an implementation for launching webworkers and audio worklets using the other files.
    • AlphaTab.worker.mjs - The web worker entry point. It imports AlphaTab.core and initializes it with an implementation for launching webworkers and audio worklets throwing an error that no nested workers can be launched. (as we don't need nesting for now).
      *AlphaTab.worklet.mjs - The audio worklet entry point. It imports AlphaTab.core and initializes it with an implementation for launching webworkers and audio worklets throwing an error that no nested workers can be launched. (as we don't need nesting for now).
    • AlphaTab.js - An all-in-one bundled (UMD) version of alphaTab not intended for further bundling.
    • AlphaTab.webpack.js - A WebPack plugin taking care of the webpack bundler specific bits with alphaTab as WebPack doesn't has built-in support for everything. (e.g. audio worklets which further import items).
@Danielku15 Danielku15 converted this from a draft issue Jan 21, 2024
@Danielku15 Danielku15 self-assigned this Jan 21, 2024
This was referenced Jan 21, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in Version 1.3 Mar 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
1 participant