add bundler target to wasm-bindgen-test-runner to support ESM #3242
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.
tldr
Allows
wasm-bindgen-test-runner
to create and execute native ESM code.Context
More and more JS / TS libraries are transforming from historic CommonJS to ESM, once this transformation is done, Node.js refuses to load them via
const myModule = require('my-module')
. Instead, modules need to loaded asimport myModule from 'my-module'
- or dynamically usingconst myModule = await import('my-module')
.Within Node.js, ES modules are distinguished from CommonJS modules by their file ending
.mjs
vs.cjs
or by the closestpackage.json
file'stype
section. The file ending has precedence over thepackage.json
file, allowing ES modules in a CommonJS package and vice-verse.Changes in detail
Exposes the compile target
bundler
via the environment variableWASM_BINDGEN_USE_BUNDLER
towasm-bindgen-test-runner
.Adds a new
bundler
execute section, written in ESM syntax and explicit.mjs
file ending such that Node.js loads it in ESM-mode.