diff --git a/src/index.ts b/src/index.ts index 7f72ab4..5b1aaf7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -60,12 +60,19 @@ function transformer( let code = fs.readFileSync(filePath, 'utf8'); + const hasImportOrExport = /^\s*(?:import|export)\s/gm; + if (filePath.endsWith('.cjs') && nodeSupportsImport) { const transformed = transformDynamicImport(filePath, code); if (transformed) { code = applySourceMap(transformed, filePath); } - } else { + } else if ( + // Best guesses for files that need to be transformed. + !filePath.endsWith('.js') // not .js, so possibly ts, tsx, mjs, mts etc. + || code.includes('import(') // dynamic import + || hasImportOrExport.test(code) // any line starts with import or export + ) { const transformed = transformSync( code, filePath, @@ -75,6 +82,8 @@ function transformer( ); code = applySourceMap(transformed, filePath); + } else { + // Skipped, we expect it not to need to be transformed. } module._compile(code, filePath);