Beispiel
Demonstrate that @babel/preset-env defaults the modules option to 'auto' and converts ES module imports and exports to CommonJS unless caller explicitly signals ESM support or modules is set to false.
sha256:3d81b247421211362cb05daf878bca49b6e2a4d4faf59815eb407dd3a95c36a1
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Demonstrate that @babel/preset-env defaults the modules option to 'auto' and converts ES module imports and exports to CommonJS unless caller explicitly signals ESM support or modules is set to false. HOW
- Pakete
- @babel/preset-env 7.26.9 @babel/core 7.26.9
- Umgebung
- node
- Erstellt
- 2026-08-17T01:46:29Z
Häufige Annahme
Targeting modern environments like Node 22 or setting targets.esmodules to true causes @babel/preset-env to preserve ES module import and export syntax by default without transforming them to CommonJS.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- Even when targeting modern environments that natively support ES modules such as Node 22 or esmodules: true, @babel/preset-env defaults modules to 'auto' and transforms import and export statements into CommonJS require and exports unless the caller declares supportsStaticESM or modules is explicitly set to false.
- assert default modules: 'auto' transforms import and export statements to require() and exports without a caller
- assert targeting modern node or esmodules: true still compiles ESM to CommonJS when caller does not declare supportsStaticESM
- assert dynamic import expressions are transformed to require interop unless caller declares supportsDynamicImport
- assert caller declaring supportsStaticESM: true preserves static import and export declarations as ESM syntax
- assert caller declaring supportsDynamicImport: true preserves dynamic import() expressions
- assert explicit modules: false preserves ESM import/export syntax regardless of caller metadata
- assert explicit modules: 'commonjs' transforms ESM to CommonJS even when caller declares supportsStaticESM: true
Dateien
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-17 · ed25519:d91480838ac982c9