From fdc0cf1ddba5c187e82364c6d1f488c031cd831c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nacho=20Codo=C3=B1er?= Date: Thu, 4 Sep 2025 11:11:47 +0200 Subject: [PATCH] dont use @swc/helpers in the server context as node support already modern syntax --- npm-packages/meteor-rspack/rspack.config.js | 4 +++- packages/babel-compiler/babel-compiler.js | 4 +++- tools/modern-tests/apps/react-router/package.json | 1 + tools/modern-tests/apps/react-router/server/main.js | 2 ++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/npm-packages/meteor-rspack/rspack.config.js b/npm-packages/meteor-rspack/rspack.config.js index 6353ea1c74..da4a06c491 100644 --- a/npm-packages/meteor-rspack/rspack.config.js +++ b/npm-packages/meteor-rspack/rspack.config.js @@ -118,6 +118,7 @@ export default function (inMeteor = {}, argv = {}) { const isDev = !!Meteor.isDevelopment || !isProd; const isTest = !!Meteor.isTest; const isClient = !!Meteor.isClient; + const isServer = !!Meteor.isServer; const isRun = !!Meteor.isRun; const isReactEnabled = !!Meteor.isReactEnabled; const isTestModule = !!Meteor.isTestModule; @@ -203,12 +204,13 @@ export default function (inMeteor = {}, argv = {}) { console.log('[i] Meteor flags:', Meteor); } + const enableSwcExternalHelpers = !isServer && swcExternalHelpers; const isDevEnvironment = isRun && isDev && !isTest && !isNative; const swcConfigRule = createSwcConfig({ isTypescriptEnabled, isJsxEnabled, isTsxEnabled, - externalHelpers: swcExternalHelpers, + externalHelpers: enableSwcExternalHelpers, isDevEnvironment, }); // Expose swc config to use in custom configs diff --git a/packages/babel-compiler/babel-compiler.js b/packages/babel-compiler/babel-compiler.js index 860061818a..2cf561970d 100644 --- a/packages/babel-compiler/babel-compiler.js +++ b/packages/babel-compiler/babel-compiler.js @@ -281,7 +281,8 @@ BCp.processOneFileForTarget = function (inputFile, source) { const features = Object.assign({}, this.extraFeatures); const arch = inputFile.getArch(); - if (arch.startsWith("os.")) { + const isNodeTarget = arch.startsWith("os."); + if (isNodeTarget) { // Start with a much simpler set of Babel presets and plugins if // we're compiling for Node 8. features.nodeMajorVersion = parseInt(process.versions.node, 10); @@ -355,6 +356,7 @@ BCp.processOneFileForTarget = function (inputFile, source) { tsx: hasTSXSupport, }, ...(hasSwcHelpersAvailable && + !isNodeTarget && (packageName == null || !['modules-runtime'].includes(packageName)) && { externalHelpers: true, diff --git a/tools/modern-tests/apps/react-router/package.json b/tools/modern-tests/apps/react-router/package.json index dbbf46f446..8d19762364 100644 --- a/tools/modern-tests/apps/react-router/package.json +++ b/tools/modern-tests/apps/react-router/package.json @@ -8,6 +8,7 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { + "@aws-sdk/client-s3": "^3.879.0", "@babel/runtime": "^7.23.5", "@modelcontextprotocol/sdk": "^1.17.3", "@swc/helpers": "^0.5.17", diff --git a/tools/modern-tests/apps/react-router/server/main.js b/tools/modern-tests/apps/react-router/server/main.js index 6beb7c30b7..813507d906 100644 --- a/tools/modern-tests/apps/react-router/server/main.js +++ b/tools/modern-tests/apps/react-router/server/main.js @@ -4,8 +4,10 @@ import { LinksCollection } from '/imports/api/links'; import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'; import '@helper/alias'; import ReactAlias from '@react/alias'; +import { S3Client } from '@aws-sdk/client-s3'; console.log('@react/alias loaded', ReactAlias.version); +console.log('S3client loaded', !!S3Client); async function insertLink({ title, url }) { await LinksCollection.insertAsync({ title, url, createdAt: new Date() });