diff --git a/packages/core/integration-tests/test/integration/babel-node-modules/index.js b/packages/core/integration-tests/test/integration/babel-node-modules/index.js index 21b5030d8ab..768c1150529 100644 --- a/packages/core/integration-tests/test/integration/babel-node-modules/index.js +++ b/packages/core/integration-tests/test/integration/babel-node-modules/index.js @@ -2,3 +2,4 @@ import Foo from 'foo'; export {Foo}; export class Bar {} +export const t = typeof Foo; diff --git a/packages/core/integration-tests/test/transpilation.js b/packages/core/integration-tests/test/transpilation.js index 4ee4e9a6a05..78dff41cd09 100644 --- a/packages/core/integration-tests/test/transpilation.js +++ b/packages/core/integration-tests/test/transpilation.js @@ -57,13 +57,15 @@ describe('transpilation', function () { }); it('should transpile node_modules by default', async function () { - await bundle( + let b = await bundle( path.join(__dirname, '/integration/babel-node-modules/index.js'), ); let file = await outputFS.readFile(path.join(distDir, 'index.js'), 'utf8'); assert(!/class \S+ \{/.test(file)); assert(file.includes('function Bar')); + let res = await run(b); + assert.equal(res.t, 'function'); }); it('should not support JSX in node_modules', async function () { diff --git a/packages/transformers/js/src/JSTransformer.js b/packages/transformers/js/src/JSTransformer.js index 2ba3eacfc9b..d98d0f725c2 100644 --- a/packages/transformers/js/src/JSTransformer.js +++ b/packages/transformers/js/src/JSTransformer.js @@ -333,6 +333,11 @@ export default (new Transformer({ targets = {node: semver.minVersion(asset.env.engines.node)?.toString()}; } + // Avoid transpiling @swc/helpers so that we don't cause infinite recursion. + if (asset.filePath.includes('@swc/helpers')) { + targets = null; + } + let env: EnvMap = {}; if (!config?.inlineEnvironment) {