fix: [#483] Add optional JSDOM dependency for Node #487
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
closes #483
This PR adds jsdom as an optional dependency that can be detected and used in environments that don't have support for the browser-internal
DOMParser
.Caveats: This also fixes the graphics component breaks I was running into when trying to run headless to actually test this. I can move that out into a separate Issue & PR if that makes sense to do. Essentially, I removed the loading of the actual image/sprite/animations when headless since it was breaking in Node when a browser graphic context wasn't there, even though headless would imply that not being necessary.
Usage
When planning to use excalibur-tiled in Node.js or another non-browser environment, include jsdom when installing excalibur-tiled...
npm i --save @excaliburjs/plugin-tiled@next jsdom
or any time after if it's needed.
npm i --save jsdom