[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-meteor-meteor-modern-build-stack":3,"mdc-vnw6by-key":36,"related-repo-meteor-meteor-modern-build-stack":1563,"related-org-meteor-meteor-modern-build-stack":1659},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":31,"sourceUrl":34,"mdContent":35},"meteor-modern-build-stack","configure Meteor 3 modern build stacks","Use when configuring or tuning the Meteor 3 modern build stack: SWC transpiler, SWC-based minifier, modern @parcel\u002Fwatcher, web-arch skipping in development, .meteorignore, and the Rspack bundler integration via the rspack Atmosphere package. Triggers on package.json \"meteor\": { \"modern\": true }, .swcrc, swc.config.js, [Transpiler] Used Babel Fallback logs, rspack.config.js, rspack.config.ts, defineConfig from @meteorjs\u002Frspack, Meteor.compileWith* helpers, Meteor.extendConfig, Meteor.extendSwcConfig vs Meteor.replaceSwcConfig, Meteor.splitVendorChunk, Meteor.persistDevFiles, Meteor.disablePlugins, Meteor.enablePortableBuild, HtmlRspackPlugin customization, RSPACK_DEVSERVER_PORT, TOOL_NODE_FLAGS for OOM, modern\u002Flegacy archs. Use this skill when the user asks about enabling the modern build stack, asks about SWC vs Babel in Meteor, asks about Rspack integration setup, or asks about customizing rspack.config.js. For converting an existing app's code to be Rspack-compatible, use migrate-to-rspack instead.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"meteor","Meteor","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmeteor.png",[12,16,19],{"name":13,"slug":14,"type":15},"Performance","performance","tag",{"name":17,"slug":18,"type":15},"Build","build",{"name":9,"slug":8,"type":15},4,"https:\u002F\u002Fgithub.com\u002Fmeteor\u002Fagent-skills","2026-08-28T15:09:42.877439","MIT",0,[26,27,28,29,8,30],"agent-skills","ai-agents","claude-code","codex","meteorjs",{"repoUrl":21,"stars":20,"forks":24,"topics":32,"description":33},[26,27,28,29,8,30],"Meteor-maintained Agent Skills for building, migrating, testing, securing, and deploying Meteor 3 applications.","https:\u002F\u002Fgithub.com\u002Fmeteor\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fmeteor-modern-build-stack","---\nname: meteor-modern-build-stack\ndescription: >\n  Use when configuring or tuning the Meteor 3 modern build stack: SWC\n  transpiler, SWC-based minifier, modern @parcel\u002Fwatcher, web-arch skipping\n  in development, .meteorignore, and the Rspack bundler integration via the\n  rspack Atmosphere package. Triggers on package.json \"meteor\": { \"modern\":\n  true }, .swcrc, swc.config.js, [Transpiler] Used Babel Fallback logs,\n  rspack.config.js, rspack.config.ts, defineConfig from @meteorjs\u002Frspack, Meteor.compileWith*\n  helpers, Meteor.extendConfig, Meteor.extendSwcConfig vs Meteor.replaceSwcConfig,\n  Meteor.splitVendorChunk, Meteor.persistDevFiles, Meteor.disablePlugins,\n  Meteor.enablePortableBuild, HtmlRspackPlugin customization,\n  RSPACK_DEVSERVER_PORT, TOOL_NODE_FLAGS for OOM, modern\u002Flegacy archs.\n  Use this skill when the user asks about enabling the modern build stack,\n  asks about SWC vs Babel in Meteor, asks about Rspack integration setup,\n  or asks about customizing rspack.config.js. For converting an existing\n  app's code to be Rspack-compatible, use migrate-to-rspack instead.\nmetadata:\n  author: meteor\n  kind: knowledge\n  meteor: \">=3.3\"\n  area: build\n  tagline: \"Configure the Meteor 3 modern build stack (SWC transpiler\u002Fminifier, `@parcel\u002Fwatcher`, web-arch skipping, Rspack integration).\"\n  bundle: [\"essentials\"]\n  docs_synced_at: \"2026-08-25\"\nlicense: MIT\n---\n\n# Modern build stack\n\nThe modern build stack is two independent tracks. Enable either or both.\n\n1. **Meteor Bundler Optimizations** (Meteor 3.3+). One flag, SWC replaces\n   Babel, SWC minifier replaces Terser, `@parcel\u002Fwatcher` replaces the\n   legacy watcher, development skips legacy archs.\n2. **Rspack Bundler Integration** (Meteor 3.4+). Atmosphere package\n   delegates app-code compilation to Rspack. Tree shaking, ESM, code\n   splitting via HTTP, modern bundler plugins.\n\nStandard current `meteor create` application skeletons ship both enabled.\nPurposefully small or compatibility-oriented skeletons, including `minimal`\nand `legacy`, may omit Rspack or the modern flag. Inspect the generated\n`package.json` and `.meteor\u002Fpackages` instead of inferring features only from\nthe Meteor version. For existing apps, enable optimizations first, then add\nRspack once the app code is standards-clean.\n\n## Enable Meteor Bundler Optimizations\n\nAdd to `package.json`:\n\n```json\n\"meteor\": {\n  \"modern\": true\n}\n```\n\nThis enables SWC, the SWC minifier, the modern watcher, and dev-mode web\narch skipping. Each falls back to legacy when something is incompatible, so\nthis is backward compatible.\n\nOpt out of pieces:\n\n```json\n\"meteor\": {\n  \"modern\": {\n    \"transpiler\": false,\n    \"minifier\": false,\n    \"watcher\": false,\n    \"webArchOnly\": false\n  }\n}\n```\n\nOr scope SWC: `transpiler.excludeApp`, `transpiler.excludeNodeModules`,\n`transpiler.excludePackages`, `transpiler.excludeLegacy`. Accept `true` or\nan array of paths\u002Fregexes.\n\nVerbose transpiler logs to diagnose Babel fallbacks:\n\n```json\n\"meteor\": {\n  \"modern\": {\n    \"transpiler\": { \"verbose\": true }\n  }\n}\n```\n\nLook for `[Transpiler] Used Babel for \u003Cfile> Fallback`. The common cause is\nnested imports; see `references\u002Fmeteor-bundler-optimizations.md`.\n\n## Enable Rspack integration\n\n```bash\nmeteor add rspack\n```\n\nOn first run the package installs the project-level Rspack setup. App code\nmoves to Rspack; Meteor still handles Atmosphere packages and produces the\nfinal bundle. Requires entry points in `package.json` and no nested imports\nin app code. To migrate an existing app, use the `migrate-to-rspack` skill.\n\n`rspack` and `@meteorjs\u002Frspack` follow the Meteor release, not the\n`@rspack\u002Fcore` or `@rspack\u002Fcli` major. Meteor 3.4.0 uses both integration\npackages at v1. Meteor 3.4.1 and 3.5 use `rspack@1.1.0` with\n`@meteorjs\u002Frspack@2.0.1`; Meteor 3.5.1 uses `rspack@1.2.0` with\n`@meteorjs\u002Frspack@2.1.0`. Inspect `.meteor\u002Fversions`, `package.json`, and the\nlockfile. Run `meteor update --npm` after changing the Meteor release.\n\n## SWC config files\n\n```text\n.swcrc > swc.config.js > swc.config.ts\n```\n\nOnly the first found is used. Use `.swcrc` for static config, `swc.config.js`\nfor environment-driven config. The file name must be exactly `.swcrc`, not\n`config.swcrc`.\n\nInstall `@swc\u002Fhelpers` to externalize SWC helpers (smaller bundles):\n\n```bash\nmeteor npm install --save @swc\u002Fhelpers\n```\n\nNew apps ship with this preinstalled. Normally no further setup is needed;\nMeteor's pipeline detects it and emits imports instead of inlining. If only a\nproduction or legacy bundle fails on a helper import, inspect Rspack-generated\nand final Meteor output before changing `.swcrc` or adding manual imports.\n\n## Rspack config files\n\n```text\nrspack.config.js | rspack.config.ts | rspack.config.mjs | rspack.config.cjs\n```\n\nUse `defineConfig` from `@meteorjs\u002Frspack`. The function receives a\n`Meteor` parameter with build flags and helpers. See\n`references\u002Frspack-config.md` for the full table and the most useful\nhelpers (`extendSwcConfig`, `compileWithRspack`, `compileWithMeteor`,\n`extendConfig`, `splitVendorChunk`, `persistDevFiles`, `disablePlugins`,\n`enablePortableBuild`, `setCache`).\n\n## .meteorignore\n\nSkip directories the bundler does not need to watch. Same syntax as\n`.gitignore`. Place at any depth; rules apply to the subtree.\n\n```gitignore\ndocs\u002F\ndesign\u002F\ncypress\u002F\nscripts\u002F\n*.md\n!README.md\n```\n\nFor per-command rules, set the `METEOR_IGNORE` env var.\n\nDo not copy `.gitignore` into `.meteorignore` blindly. Exclude unrelated large\ntrees that Meteor does not need, but never match the active Rspack build context:\nMeteor consumes its generated main and test modules during final assembly.\n\nRspack also generates `_build\u002F`, `public\u002Fbuild-assets\u002F`,\n`public\u002Fbuild-chunks\u002F`, and `private\u002Fbuild-assets\u002F`. Add those paths to the\nnative ignore configuration of recursive formatters, linters, typecheckers,\ntest discovery, coverage, and IDEs. `.gitignore` alone is insufficient.\n\n## Minifier ownership\n\n`\"modern\": true` selects Meteor's modern standard minifier. A third-party\nAtmosphere package that provides the JavaScript minifier remains part of the\nfinal Meteor assembly even when Rspack compiles app modules. Inventory custom\nminifier packages before migration. Keep or remove one only after comparing\nproduction output, source maps, build time, and runtime behavior.\n\n## Production legacy builds\n\nDev skips `web.browser.legacy` and `web.cordova` with `\"modern\": true`.\nProduction still ships legacy by default. To drop legacy in production\ntoo, add `modern` to `.meteor\u002Fplatforms`:\n\n```text\nserver\nbrowser\nmodern\n```\n\n## Memory limits\n\nRspack runs as a child process and may OOM on large apps. Raise the heap\nfor tool processes temporarily when capturing evidence (Meteor 3.4.1+):\n\n```bash\nTOOL_NODE_FLAGS=\"--max-old-space-size=16384\" meteor run\n```\n\nOn Meteor 3.4.0, use `NODE_OPTIONS=\"--max-old-space-size=16384\"`.\n\nFirst distinguish a one-shot build failure from growth during a long watch\nsession. Audit large directories visible to Meteor and check the exact release\nfor fixes. Test heap size and persistent cache as separate variables; revert a\nchange that does not improve the failure or a measured memory trend.\n\n## Multiple instances\n\n`METEOR_LOCAL_DIR` isolates `_build`, `build-assets`, `build-chunks`:\n\n```bash\nPORT=3000 METEOR_LOCAL_DIR=.meteor\u002Flocal-1 meteor run\nPORT=3001 METEOR_LOCAL_DIR=.meteor\u002Flocal-2 meteor run\n```\n\n## Anti-patterns\n\n- Enable optimizations and Rspack at the same time on a legacy app. Enable\n  `\"modern\": true` first, clean up Babel fallbacks, then add Rspack.\n- Edit files inside `_build\u002F`, `public\u002Fbuild-assets\u002F`,\n  `public\u002Fbuild-chunks\u002F`, or `private\u002Fbuild-assets\u002F`. Autogenerated.\n- Assume `.gitignore` prevents code-quality tools from scanning generated\n  Rspack output. Configure each tool's own ignore mechanism.\n- Copy `.gitignore` to `.meteorignore`. Git may ignore Rspack's generated\n  handoff even though Meteor must read it.\n- Remove a custom Atmosphere minifier only because Rspack is enabled.\n  Benchmark the final production bundle first.\n- Disable Rspack persistent cache without need. It is the default and the\n  main rebuild-speed win. Disable only when investigating OOM or a\n  cache-related Rspack bug.\n- Name an SWC config `config.swcrc` or `rc.swc`. Only `.swcrc` is read.\n\n## See also\n\n- `references\u002Fmeteor-bundler-optimizations.md`\n- `references\u002Frspack-config.md`\n- `references\u002Feval-cases.md`\n- For converting an existing app to Rspack: `migrate-to-rspack` skill.\n",{"data":37,"body":45},{"name":4,"description":6,"metadata":38,"license":23},{"author":8,"kind":39,"meteor":40,"area":18,"tagline":41,"bundle":42,"docs_synced_at":44},"knowledge",">=3.3","Configure the Meteor 3 modern build stack (SWC transpiler\u002Fminifier, `@parcel\u002Fwatcher`, web-arch skipping, Rspack integration).",[43],"essentials","2026-08-25",{"type":46,"children":47},"root",[48,57,63,98,143,150,162,242,247,252,425,469,474,594,615,621,647,667,754,760,770,805,818,852,864,870,879,978,984,997,1054,1067,1086,1128,1134,1145,1151,1192,1201,1207,1212,1255,1267,1272,1278,1310,1393,1399,1512,1518,1557],{"type":49,"tag":50,"props":51,"children":53},"element","h1",{"id":52},"modern-build-stack",[54],{"type":55,"value":56},"text","Modern build stack",{"type":49,"tag":58,"props":59,"children":60},"p",{},[61],{"type":55,"value":62},"The modern build stack is two independent tracks. Enable either or both.",{"type":49,"tag":64,"props":65,"children":66},"ol",{},[67,88],{"type":49,"tag":68,"props":69,"children":70},"li",{},[71,77,79,86],{"type":49,"tag":72,"props":73,"children":74},"strong",{},[75],{"type":55,"value":76},"Meteor Bundler Optimizations",{"type":55,"value":78}," (Meteor 3.3+). One flag, SWC replaces\nBabel, SWC minifier replaces Terser, ",{"type":49,"tag":80,"props":81,"children":83},"code",{"className":82},[],[84],{"type":55,"value":85},"@parcel\u002Fwatcher",{"type":55,"value":87}," replaces the\nlegacy watcher, development skips legacy archs.",{"type":49,"tag":68,"props":89,"children":90},{},[91,96],{"type":49,"tag":72,"props":92,"children":93},{},[94],{"type":55,"value":95},"Rspack Bundler Integration",{"type":55,"value":97}," (Meteor 3.4+). Atmosphere package\ndelegates app-code compilation to Rspack. Tree shaking, ESM, code\nsplitting via HTTP, modern bundler plugins.",{"type":49,"tag":58,"props":99,"children":100},{},[101,103,109,111,117,119,125,127,133,135,141],{"type":55,"value":102},"Standard current ",{"type":49,"tag":80,"props":104,"children":106},{"className":105},[],[107],{"type":55,"value":108},"meteor create",{"type":55,"value":110}," application skeletons ship both enabled.\nPurposefully small or compatibility-oriented skeletons, including ",{"type":49,"tag":80,"props":112,"children":114},{"className":113},[],[115],{"type":55,"value":116},"minimal",{"type":55,"value":118},"\nand ",{"type":49,"tag":80,"props":120,"children":122},{"className":121},[],[123],{"type":55,"value":124},"legacy",{"type":55,"value":126},", may omit Rspack or the modern flag. Inspect the generated\n",{"type":49,"tag":80,"props":128,"children":130},{"className":129},[],[131],{"type":55,"value":132},"package.json",{"type":55,"value":134}," and ",{"type":49,"tag":80,"props":136,"children":138},{"className":137},[],[139],{"type":55,"value":140},".meteor\u002Fpackages",{"type":55,"value":142}," instead of inferring features only from\nthe Meteor version. For existing apps, enable optimizations first, then add\nRspack once the app code is standards-clean.",{"type":49,"tag":144,"props":145,"children":147},"h2",{"id":146},"enable-meteor-bundler-optimizations",[148],{"type":55,"value":149},"Enable Meteor Bundler Optimizations",{"type":49,"tag":58,"props":151,"children":152},{},[153,155,160],{"type":55,"value":154},"Add to ",{"type":49,"tag":80,"props":156,"children":158},{"className":157},[],[159],{"type":55,"value":132},{"type":55,"value":161},":",{"type":49,"tag":163,"props":164,"children":169},"pre",{"className":165,"code":166,"language":167,"meta":168,"style":168},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\"meteor\": {\n  \"modern\": true\n}\n","json","",[170],{"type":49,"tag":80,"props":171,"children":172},{"__ignoreMap":168},[173,205,233],{"type":49,"tag":174,"props":175,"children":178},"span",{"class":176,"line":177},"line",1,[179,185,190,194,200],{"type":49,"tag":174,"props":180,"children":182},{"style":181},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[183],{"type":55,"value":184},"\"",{"type":49,"tag":174,"props":186,"children":188},{"style":187},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[189],{"type":55,"value":8},{"type":49,"tag":174,"props":191,"children":192},{"style":181},[193],{"type":55,"value":184},{"type":49,"tag":174,"props":195,"children":197},{"style":196},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[198],{"type":55,"value":199},": ",{"type":49,"tag":174,"props":201,"children":202},{"style":181},[203],{"type":55,"value":204},"{\n",{"type":49,"tag":174,"props":206,"children":208},{"class":176,"line":207},2,[209,214,220,224,228],{"type":49,"tag":174,"props":210,"children":211},{"style":181},[212],{"type":55,"value":213},"  \"",{"type":49,"tag":174,"props":215,"children":217},{"style":216},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[218],{"type":55,"value":219},"modern",{"type":49,"tag":174,"props":221,"children":222},{"style":181},[223],{"type":55,"value":184},{"type":49,"tag":174,"props":225,"children":226},{"style":181},[227],{"type":55,"value":161},{"type":49,"tag":174,"props":229,"children":230},{"style":181},[231],{"type":55,"value":232}," true\n",{"type":49,"tag":174,"props":234,"children":236},{"class":176,"line":235},3,[237],{"type":49,"tag":174,"props":238,"children":239},{"style":181},[240],{"type":55,"value":241},"}\n",{"type":49,"tag":58,"props":243,"children":244},{},[245],{"type":55,"value":246},"This enables SWC, the SWC minifier, the modern watcher, and dev-mode web\narch skipping. Each falls back to legacy when something is incompatible, so\nthis is backward compatible.",{"type":49,"tag":58,"props":248,"children":249},{},[250],{"type":55,"value":251},"Opt out of pieces:",{"type":49,"tag":163,"props":253,"children":255},{"className":165,"code":254,"language":167,"meta":168,"style":168},"\"meteor\": {\n  \"modern\": {\n    \"transpiler\": false,\n    \"minifier\": false,\n    \"watcher\": false,\n    \"webArchOnly\": false\n  }\n}\n",[256],{"type":49,"tag":80,"props":257,"children":258},{"__ignoreMap":168},[259,282,306,333,357,382,408,417],{"type":49,"tag":174,"props":260,"children":261},{"class":176,"line":177},[262,266,270,274,278],{"type":49,"tag":174,"props":263,"children":264},{"style":181},[265],{"type":55,"value":184},{"type":49,"tag":174,"props":267,"children":268},{"style":187},[269],{"type":55,"value":8},{"type":49,"tag":174,"props":271,"children":272},{"style":181},[273],{"type":55,"value":184},{"type":49,"tag":174,"props":275,"children":276},{"style":196},[277],{"type":55,"value":199},{"type":49,"tag":174,"props":279,"children":280},{"style":181},[281],{"type":55,"value":204},{"type":49,"tag":174,"props":283,"children":284},{"class":176,"line":207},[285,289,293,297,301],{"type":49,"tag":174,"props":286,"children":287},{"style":181},[288],{"type":55,"value":213},{"type":49,"tag":174,"props":290,"children":291},{"style":216},[292],{"type":55,"value":219},{"type":49,"tag":174,"props":294,"children":295},{"style":181},[296],{"type":55,"value":184},{"type":49,"tag":174,"props":298,"children":299},{"style":181},[300],{"type":55,"value":161},{"type":49,"tag":174,"props":302,"children":303},{"style":181},[304],{"type":55,"value":305}," {\n",{"type":49,"tag":174,"props":307,"children":308},{"class":176,"line":235},[309,314,320,324,328],{"type":49,"tag":174,"props":310,"children":311},{"style":181},[312],{"type":55,"value":313},"    \"",{"type":49,"tag":174,"props":315,"children":317},{"style":316},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[318],{"type":55,"value":319},"transpiler",{"type":49,"tag":174,"props":321,"children":322},{"style":181},[323],{"type":55,"value":184},{"type":49,"tag":174,"props":325,"children":326},{"style":181},[327],{"type":55,"value":161},{"type":49,"tag":174,"props":329,"children":330},{"style":181},[331],{"type":55,"value":332}," false,\n",{"type":49,"tag":174,"props":334,"children":335},{"class":176,"line":20},[336,340,345,349,353],{"type":49,"tag":174,"props":337,"children":338},{"style":181},[339],{"type":55,"value":313},{"type":49,"tag":174,"props":341,"children":342},{"style":316},[343],{"type":55,"value":344},"minifier",{"type":49,"tag":174,"props":346,"children":347},{"style":181},[348],{"type":55,"value":184},{"type":49,"tag":174,"props":350,"children":351},{"style":181},[352],{"type":55,"value":161},{"type":49,"tag":174,"props":354,"children":355},{"style":181},[356],{"type":55,"value":332},{"type":49,"tag":174,"props":358,"children":360},{"class":176,"line":359},5,[361,365,370,374,378],{"type":49,"tag":174,"props":362,"children":363},{"style":181},[364],{"type":55,"value":313},{"type":49,"tag":174,"props":366,"children":367},{"style":316},[368],{"type":55,"value":369},"watcher",{"type":49,"tag":174,"props":371,"children":372},{"style":181},[373],{"type":55,"value":184},{"type":49,"tag":174,"props":375,"children":376},{"style":181},[377],{"type":55,"value":161},{"type":49,"tag":174,"props":379,"children":380},{"style":181},[381],{"type":55,"value":332},{"type":49,"tag":174,"props":383,"children":385},{"class":176,"line":384},6,[386,390,395,399,403],{"type":49,"tag":174,"props":387,"children":388},{"style":181},[389],{"type":55,"value":313},{"type":49,"tag":174,"props":391,"children":392},{"style":316},[393],{"type":55,"value":394},"webArchOnly",{"type":49,"tag":174,"props":396,"children":397},{"style":181},[398],{"type":55,"value":184},{"type":49,"tag":174,"props":400,"children":401},{"style":181},[402],{"type":55,"value":161},{"type":49,"tag":174,"props":404,"children":405},{"style":181},[406],{"type":55,"value":407}," false\n",{"type":49,"tag":174,"props":409,"children":411},{"class":176,"line":410},7,[412],{"type":49,"tag":174,"props":413,"children":414},{"style":181},[415],{"type":55,"value":416},"  }\n",{"type":49,"tag":174,"props":418,"children":420},{"class":176,"line":419},8,[421],{"type":49,"tag":174,"props":422,"children":423},{"style":181},[424],{"type":55,"value":241},{"type":49,"tag":58,"props":426,"children":427},{},[428,430,436,438,444,446,452,453,459,461,467],{"type":55,"value":429},"Or scope SWC: ",{"type":49,"tag":80,"props":431,"children":433},{"className":432},[],[434],{"type":55,"value":435},"transpiler.excludeApp",{"type":55,"value":437},", ",{"type":49,"tag":80,"props":439,"children":441},{"className":440},[],[442],{"type":55,"value":443},"transpiler.excludeNodeModules",{"type":55,"value":445},",\n",{"type":49,"tag":80,"props":447,"children":449},{"className":448},[],[450],{"type":55,"value":451},"transpiler.excludePackages",{"type":55,"value":437},{"type":49,"tag":80,"props":454,"children":456},{"className":455},[],[457],{"type":55,"value":458},"transpiler.excludeLegacy",{"type":55,"value":460},". Accept ",{"type":49,"tag":80,"props":462,"children":464},{"className":463},[],[465],{"type":55,"value":466},"true",{"type":55,"value":468}," or\nan array of paths\u002Fregexes.",{"type":49,"tag":58,"props":470,"children":471},{},[472],{"type":55,"value":473},"Verbose transpiler logs to diagnose Babel fallbacks:",{"type":49,"tag":163,"props":475,"children":477},{"className":165,"code":476,"language":167,"meta":168,"style":168},"\"meteor\": {\n  \"modern\": {\n    \"transpiler\": { \"verbose\": true }\n  }\n}\n",[478],{"type":49,"tag":80,"props":479,"children":480},{"__ignoreMap":168},[481,504,527,580,587],{"type":49,"tag":174,"props":482,"children":483},{"class":176,"line":177},[484,488,492,496,500],{"type":49,"tag":174,"props":485,"children":486},{"style":181},[487],{"type":55,"value":184},{"type":49,"tag":174,"props":489,"children":490},{"style":187},[491],{"type":55,"value":8},{"type":49,"tag":174,"props":493,"children":494},{"style":181},[495],{"type":55,"value":184},{"type":49,"tag":174,"props":497,"children":498},{"style":196},[499],{"type":55,"value":199},{"type":49,"tag":174,"props":501,"children":502},{"style":181},[503],{"type":55,"value":204},{"type":49,"tag":174,"props":505,"children":506},{"class":176,"line":207},[507,511,515,519,523],{"type":49,"tag":174,"props":508,"children":509},{"style":181},[510],{"type":55,"value":213},{"type":49,"tag":174,"props":512,"children":513},{"style":216},[514],{"type":55,"value":219},{"type":49,"tag":174,"props":516,"children":517},{"style":181},[518],{"type":55,"value":184},{"type":49,"tag":174,"props":520,"children":521},{"style":181},[522],{"type":55,"value":161},{"type":49,"tag":174,"props":524,"children":525},{"style":181},[526],{"type":55,"value":305},{"type":49,"tag":174,"props":528,"children":529},{"class":176,"line":235},[530,534,538,542,546,551,556,562,566,570,575],{"type":49,"tag":174,"props":531,"children":532},{"style":181},[533],{"type":55,"value":313},{"type":49,"tag":174,"props":535,"children":536},{"style":316},[537],{"type":55,"value":319},{"type":49,"tag":174,"props":539,"children":540},{"style":181},[541],{"type":55,"value":184},{"type":49,"tag":174,"props":543,"children":544},{"style":181},[545],{"type":55,"value":161},{"type":49,"tag":174,"props":547,"children":548},{"style":181},[549],{"type":55,"value":550}," {",{"type":49,"tag":174,"props":552,"children":553},{"style":181},[554],{"type":55,"value":555}," \"",{"type":49,"tag":174,"props":557,"children":559},{"style":558},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[560],{"type":55,"value":561},"verbose",{"type":49,"tag":174,"props":563,"children":564},{"style":181},[565],{"type":55,"value":184},{"type":49,"tag":174,"props":567,"children":568},{"style":181},[569],{"type":55,"value":161},{"type":49,"tag":174,"props":571,"children":572},{"style":181},[573],{"type":55,"value":574}," true",{"type":49,"tag":174,"props":576,"children":577},{"style":181},[578],{"type":55,"value":579}," }\n",{"type":49,"tag":174,"props":581,"children":582},{"class":176,"line":20},[583],{"type":49,"tag":174,"props":584,"children":585},{"style":181},[586],{"type":55,"value":416},{"type":49,"tag":174,"props":588,"children":589},{"class":176,"line":359},[590],{"type":49,"tag":174,"props":591,"children":592},{"style":181},[593],{"type":55,"value":241},{"type":49,"tag":58,"props":595,"children":596},{},[597,599,605,607,613],{"type":55,"value":598},"Look for ",{"type":49,"tag":80,"props":600,"children":602},{"className":601},[],[603],{"type":55,"value":604},"[Transpiler] Used Babel for \u003Cfile> Fallback",{"type":55,"value":606},". The common cause is\nnested imports; see ",{"type":49,"tag":80,"props":608,"children":610},{"className":609},[],[611],{"type":55,"value":612},"references\u002Fmeteor-bundler-optimizations.md",{"type":55,"value":614},".",{"type":49,"tag":144,"props":616,"children":618},{"id":617},"enable-rspack-integration",[619],{"type":55,"value":620},"Enable Rspack integration",{"type":49,"tag":163,"props":622,"children":626},{"className":623,"code":624,"language":625,"meta":168,"style":168},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","meteor add rspack\n","bash",[627],{"type":49,"tag":80,"props":628,"children":629},{"__ignoreMap":168},[630],{"type":49,"tag":174,"props":631,"children":632},{"class":176,"line":177},[633,637,642],{"type":49,"tag":174,"props":634,"children":635},{"style":316},[636],{"type":55,"value":8},{"type":49,"tag":174,"props":638,"children":639},{"style":187},[640],{"type":55,"value":641}," add",{"type":49,"tag":174,"props":643,"children":644},{"style":187},[645],{"type":55,"value":646}," rspack\n",{"type":49,"tag":58,"props":648,"children":649},{},[650,652,657,659,665],{"type":55,"value":651},"On first run the package installs the project-level Rspack setup. App code\nmoves to Rspack; Meteor still handles Atmosphere packages and produces the\nfinal bundle. Requires entry points in ",{"type":49,"tag":80,"props":653,"children":655},{"className":654},[],[656],{"type":55,"value":132},{"type":55,"value":658}," and no nested imports\nin app code. To migrate an existing app, use the ",{"type":49,"tag":80,"props":660,"children":662},{"className":661},[],[663],{"type":55,"value":664},"migrate-to-rspack",{"type":55,"value":666}," skill.",{"type":49,"tag":58,"props":668,"children":669},{},[670,676,677,683,685,691,693,699,701,707,709,715,717,723,724,730,732,738,739,744,746,752],{"type":49,"tag":80,"props":671,"children":673},{"className":672},[],[674],{"type":55,"value":675},"rspack",{"type":55,"value":134},{"type":49,"tag":80,"props":678,"children":680},{"className":679},[],[681],{"type":55,"value":682},"@meteorjs\u002Frspack",{"type":55,"value":684}," follow the Meteor release, not the\n",{"type":49,"tag":80,"props":686,"children":688},{"className":687},[],[689],{"type":55,"value":690},"@rspack\u002Fcore",{"type":55,"value":692}," or ",{"type":49,"tag":80,"props":694,"children":696},{"className":695},[],[697],{"type":55,"value":698},"@rspack\u002Fcli",{"type":55,"value":700}," major. Meteor 3.4.0 uses both integration\npackages at v1. Meteor 3.4.1 and 3.5 use ",{"type":49,"tag":80,"props":702,"children":704},{"className":703},[],[705],{"type":55,"value":706},"rspack@1.1.0",{"type":55,"value":708}," with\n",{"type":49,"tag":80,"props":710,"children":712},{"className":711},[],[713],{"type":55,"value":714},"@meteorjs\u002Frspack@2.0.1",{"type":55,"value":716},"; Meteor 3.5.1 uses ",{"type":49,"tag":80,"props":718,"children":720},{"className":719},[],[721],{"type":55,"value":722},"rspack@1.2.0",{"type":55,"value":708},{"type":49,"tag":80,"props":725,"children":727},{"className":726},[],[728],{"type":55,"value":729},"@meteorjs\u002Frspack@2.1.0",{"type":55,"value":731},". Inspect ",{"type":49,"tag":80,"props":733,"children":735},{"className":734},[],[736],{"type":55,"value":737},".meteor\u002Fversions",{"type":55,"value":437},{"type":49,"tag":80,"props":740,"children":742},{"className":741},[],[743],{"type":55,"value":132},{"type":55,"value":745},", and the\nlockfile. Run ",{"type":49,"tag":80,"props":747,"children":749},{"className":748},[],[750],{"type":55,"value":751},"meteor update --npm",{"type":55,"value":753}," after changing the Meteor release.",{"type":49,"tag":144,"props":755,"children":757},{"id":756},"swc-config-files",[758],{"type":55,"value":759},"SWC config files",{"type":49,"tag":163,"props":761,"children":765},{"className":762,"code":764,"language":55,"meta":168},[763],"language-text",".swcrc > swc.config.js > swc.config.ts\n",[766],{"type":49,"tag":80,"props":767,"children":768},{"__ignoreMap":168},[769],{"type":55,"value":764},{"type":49,"tag":58,"props":771,"children":772},{},[773,775,781,783,789,791,796,798,804],{"type":55,"value":774},"Only the first found is used. Use ",{"type":49,"tag":80,"props":776,"children":778},{"className":777},[],[779],{"type":55,"value":780},".swcrc",{"type":55,"value":782}," for static config, ",{"type":49,"tag":80,"props":784,"children":786},{"className":785},[],[787],{"type":55,"value":788},"swc.config.js",{"type":55,"value":790},"\nfor environment-driven config. The file name must be exactly ",{"type":49,"tag":80,"props":792,"children":794},{"className":793},[],[795],{"type":55,"value":780},{"type":55,"value":797},", not\n",{"type":49,"tag":80,"props":799,"children":801},{"className":800},[],[802],{"type":55,"value":803},"config.swcrc",{"type":55,"value":614},{"type":49,"tag":58,"props":806,"children":807},{},[808,810,816],{"type":55,"value":809},"Install ",{"type":49,"tag":80,"props":811,"children":813},{"className":812},[],[814],{"type":55,"value":815},"@swc\u002Fhelpers",{"type":55,"value":817}," to externalize SWC helpers (smaller bundles):",{"type":49,"tag":163,"props":819,"children":821},{"className":623,"code":820,"language":625,"meta":168,"style":168},"meteor npm install --save @swc\u002Fhelpers\n",[822],{"type":49,"tag":80,"props":823,"children":824},{"__ignoreMap":168},[825],{"type":49,"tag":174,"props":826,"children":827},{"class":176,"line":177},[828,832,837,842,847],{"type":49,"tag":174,"props":829,"children":830},{"style":316},[831],{"type":55,"value":8},{"type":49,"tag":174,"props":833,"children":834},{"style":187},[835],{"type":55,"value":836}," npm",{"type":49,"tag":174,"props":838,"children":839},{"style":187},[840],{"type":55,"value":841}," install",{"type":49,"tag":174,"props":843,"children":844},{"style":187},[845],{"type":55,"value":846}," --save",{"type":49,"tag":174,"props":848,"children":849},{"style":187},[850],{"type":55,"value":851}," @swc\u002Fhelpers\n",{"type":49,"tag":58,"props":853,"children":854},{},[855,857,862],{"type":55,"value":856},"New apps ship with this preinstalled. Normally no further setup is needed;\nMeteor's pipeline detects it and emits imports instead of inlining. If only a\nproduction or legacy bundle fails on a helper import, inspect Rspack-generated\nand final Meteor output before changing ",{"type":49,"tag":80,"props":858,"children":860},{"className":859},[],[861],{"type":55,"value":780},{"type":55,"value":863}," or adding manual imports.",{"type":49,"tag":144,"props":865,"children":867},{"id":866},"rspack-config-files",[868],{"type":55,"value":869},"Rspack config files",{"type":49,"tag":163,"props":871,"children":874},{"className":872,"code":873,"language":55,"meta":168},[763],"rspack.config.js | rspack.config.ts | rspack.config.mjs | rspack.config.cjs\n",[875],{"type":49,"tag":80,"props":876,"children":877},{"__ignoreMap":168},[878],{"type":55,"value":873},{"type":49,"tag":58,"props":880,"children":881},{},[882,884,890,892,897,899,904,906,912,914,920,921,927,928,934,935,941,942,948,949,955,956,962,963,969,970,976],{"type":55,"value":883},"Use ",{"type":49,"tag":80,"props":885,"children":887},{"className":886},[],[888],{"type":55,"value":889},"defineConfig",{"type":55,"value":891}," from ",{"type":49,"tag":80,"props":893,"children":895},{"className":894},[],[896],{"type":55,"value":682},{"type":55,"value":898},". The function receives a\n",{"type":49,"tag":80,"props":900,"children":902},{"className":901},[],[903],{"type":55,"value":9},{"type":55,"value":905}," parameter with build flags and helpers. See\n",{"type":49,"tag":80,"props":907,"children":909},{"className":908},[],[910],{"type":55,"value":911},"references\u002Frspack-config.md",{"type":55,"value":913}," for the full table and the most useful\nhelpers (",{"type":49,"tag":80,"props":915,"children":917},{"className":916},[],[918],{"type":55,"value":919},"extendSwcConfig",{"type":55,"value":437},{"type":49,"tag":80,"props":922,"children":924},{"className":923},[],[925],{"type":55,"value":926},"compileWithRspack",{"type":55,"value":437},{"type":49,"tag":80,"props":929,"children":931},{"className":930},[],[932],{"type":55,"value":933},"compileWithMeteor",{"type":55,"value":445},{"type":49,"tag":80,"props":936,"children":938},{"className":937},[],[939],{"type":55,"value":940},"extendConfig",{"type":55,"value":437},{"type":49,"tag":80,"props":943,"children":945},{"className":944},[],[946],{"type":55,"value":947},"splitVendorChunk",{"type":55,"value":437},{"type":49,"tag":80,"props":950,"children":952},{"className":951},[],[953],{"type":55,"value":954},"persistDevFiles",{"type":55,"value":437},{"type":49,"tag":80,"props":957,"children":959},{"className":958},[],[960],{"type":55,"value":961},"disablePlugins",{"type":55,"value":445},{"type":49,"tag":80,"props":964,"children":966},{"className":965},[],[967],{"type":55,"value":968},"enablePortableBuild",{"type":55,"value":437},{"type":49,"tag":80,"props":971,"children":973},{"className":972},[],[974],{"type":55,"value":975},"setCache",{"type":55,"value":977},").",{"type":49,"tag":144,"props":979,"children":981},{"id":980},"meteorignore",[982],{"type":55,"value":983},".meteorignore",{"type":49,"tag":58,"props":985,"children":986},{},[987,989,995],{"type":55,"value":988},"Skip directories the bundler does not need to watch. Same syntax as\n",{"type":49,"tag":80,"props":990,"children":992},{"className":991},[],[993],{"type":55,"value":994},".gitignore",{"type":55,"value":996},". Place at any depth; rules apply to the subtree.",{"type":49,"tag":163,"props":998,"children":1002},{"className":999,"code":1000,"language":1001,"meta":168,"style":168},"language-gitignore shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docs\u002F\ndesign\u002F\ncypress\u002F\nscripts\u002F\n*.md\n!README.md\n","gitignore",[1003],{"type":49,"tag":80,"props":1004,"children":1005},{"__ignoreMap":168},[1006,1014,1022,1030,1038,1046],{"type":49,"tag":174,"props":1007,"children":1008},{"class":176,"line":177},[1009],{"type":49,"tag":174,"props":1010,"children":1011},{},[1012],{"type":55,"value":1013},"docs\u002F\n",{"type":49,"tag":174,"props":1015,"children":1016},{"class":176,"line":207},[1017],{"type":49,"tag":174,"props":1018,"children":1019},{},[1020],{"type":55,"value":1021},"design\u002F\n",{"type":49,"tag":174,"props":1023,"children":1024},{"class":176,"line":235},[1025],{"type":49,"tag":174,"props":1026,"children":1027},{},[1028],{"type":55,"value":1029},"cypress\u002F\n",{"type":49,"tag":174,"props":1031,"children":1032},{"class":176,"line":20},[1033],{"type":49,"tag":174,"props":1034,"children":1035},{},[1036],{"type":55,"value":1037},"scripts\u002F\n",{"type":49,"tag":174,"props":1039,"children":1040},{"class":176,"line":359},[1041],{"type":49,"tag":174,"props":1042,"children":1043},{},[1044],{"type":55,"value":1045},"*.md\n",{"type":49,"tag":174,"props":1047,"children":1048},{"class":176,"line":384},[1049],{"type":49,"tag":174,"props":1050,"children":1051},{},[1052],{"type":55,"value":1053},"!README.md\n",{"type":49,"tag":58,"props":1055,"children":1056},{},[1057,1059,1065],{"type":55,"value":1058},"For per-command rules, set the ",{"type":49,"tag":80,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":55,"value":1064},"METEOR_IGNORE",{"type":55,"value":1066}," env var.",{"type":49,"tag":58,"props":1068,"children":1069},{},[1070,1072,1077,1079,1084],{"type":55,"value":1071},"Do not copy ",{"type":49,"tag":80,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":55,"value":994},{"type":55,"value":1078}," into ",{"type":49,"tag":80,"props":1080,"children":1082},{"className":1081},[],[1083],{"type":55,"value":983},{"type":55,"value":1085}," blindly. Exclude unrelated large\ntrees that Meteor does not need, but never match the active Rspack build context:\nMeteor consumes its generated main and test modules during final assembly.",{"type":49,"tag":58,"props":1087,"children":1088},{},[1089,1091,1097,1098,1104,1105,1111,1113,1119,1121,1126],{"type":55,"value":1090},"Rspack also generates ",{"type":49,"tag":80,"props":1092,"children":1094},{"className":1093},[],[1095],{"type":55,"value":1096},"_build\u002F",{"type":55,"value":437},{"type":49,"tag":80,"props":1099,"children":1101},{"className":1100},[],[1102],{"type":55,"value":1103},"public\u002Fbuild-assets\u002F",{"type":55,"value":445},{"type":49,"tag":80,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":55,"value":1110},"public\u002Fbuild-chunks\u002F",{"type":55,"value":1112},", and ",{"type":49,"tag":80,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":55,"value":1118},"private\u002Fbuild-assets\u002F",{"type":55,"value":1120},". Add those paths to the\nnative ignore configuration of recursive formatters, linters, typecheckers,\ntest discovery, coverage, and IDEs. ",{"type":49,"tag":80,"props":1122,"children":1124},{"className":1123},[],[1125],{"type":55,"value":994},{"type":55,"value":1127}," alone is insufficient.",{"type":49,"tag":144,"props":1129,"children":1131},{"id":1130},"minifier-ownership",[1132],{"type":55,"value":1133},"Minifier ownership",{"type":49,"tag":58,"props":1135,"children":1136},{},[1137,1143],{"type":49,"tag":80,"props":1138,"children":1140},{"className":1139},[],[1141],{"type":55,"value":1142},"\"modern\": true",{"type":55,"value":1144}," selects Meteor's modern standard minifier. A third-party\nAtmosphere package that provides the JavaScript minifier remains part of the\nfinal Meteor assembly even when Rspack compiles app modules. Inventory custom\nminifier packages before migration. Keep or remove one only after comparing\nproduction output, source maps, build time, and runtime behavior.",{"type":49,"tag":144,"props":1146,"children":1148},{"id":1147},"production-legacy-builds",[1149],{"type":55,"value":1150},"Production legacy builds",{"type":49,"tag":58,"props":1152,"children":1153},{},[1154,1156,1162,1163,1169,1171,1176,1178,1183,1185,1191],{"type":55,"value":1155},"Dev skips ",{"type":49,"tag":80,"props":1157,"children":1159},{"className":1158},[],[1160],{"type":55,"value":1161},"web.browser.legacy",{"type":55,"value":134},{"type":49,"tag":80,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":55,"value":1168},"web.cordova",{"type":55,"value":1170}," with ",{"type":49,"tag":80,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":55,"value":1142},{"type":55,"value":1177},".\nProduction still ships legacy by default. To drop legacy in production\ntoo, add ",{"type":49,"tag":80,"props":1179,"children":1181},{"className":1180},[],[1182],{"type":55,"value":219},{"type":55,"value":1184}," to ",{"type":49,"tag":80,"props":1186,"children":1188},{"className":1187},[],[1189],{"type":55,"value":1190},".meteor\u002Fplatforms",{"type":55,"value":161},{"type":49,"tag":163,"props":1193,"children":1196},{"className":1194,"code":1195,"language":55,"meta":168},[763],"server\nbrowser\nmodern\n",[1197],{"type":49,"tag":80,"props":1198,"children":1199},{"__ignoreMap":168},[1200],{"type":55,"value":1195},{"type":49,"tag":144,"props":1202,"children":1204},{"id":1203},"memory-limits",[1205],{"type":55,"value":1206},"Memory limits",{"type":49,"tag":58,"props":1208,"children":1209},{},[1210],{"type":55,"value":1211},"Rspack runs as a child process and may OOM on large apps. Raise the heap\nfor tool processes temporarily when capturing evidence (Meteor 3.4.1+):",{"type":49,"tag":163,"props":1213,"children":1215},{"className":623,"code":1214,"language":625,"meta":168,"style":168},"TOOL_NODE_FLAGS=\"--max-old-space-size=16384\" meteor run\n",[1216],{"type":49,"tag":80,"props":1217,"children":1218},{"__ignoreMap":168},[1219],{"type":49,"tag":174,"props":1220,"children":1221},{"class":176,"line":177},[1222,1227,1232,1236,1241,1245,1250],{"type":49,"tag":174,"props":1223,"children":1224},{"style":196},[1225],{"type":55,"value":1226},"TOOL_NODE_FLAGS",{"type":49,"tag":174,"props":1228,"children":1229},{"style":181},[1230],{"type":55,"value":1231},"=",{"type":49,"tag":174,"props":1233,"children":1234},{"style":181},[1235],{"type":55,"value":184},{"type":49,"tag":174,"props":1237,"children":1238},{"style":187},[1239],{"type":55,"value":1240},"--max-old-space-size=16384",{"type":49,"tag":174,"props":1242,"children":1243},{"style":181},[1244],{"type":55,"value":184},{"type":49,"tag":174,"props":1246,"children":1247},{"style":316},[1248],{"type":55,"value":1249}," meteor",{"type":49,"tag":174,"props":1251,"children":1252},{"style":187},[1253],{"type":55,"value":1254}," run\n",{"type":49,"tag":58,"props":1256,"children":1257},{},[1258,1260,1266],{"type":55,"value":1259},"On Meteor 3.4.0, use ",{"type":49,"tag":80,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":55,"value":1265},"NODE_OPTIONS=\"--max-old-space-size=16384\"",{"type":55,"value":614},{"type":49,"tag":58,"props":1268,"children":1269},{},[1270],{"type":55,"value":1271},"First distinguish a one-shot build failure from growth during a long watch\nsession. Audit large directories visible to Meteor and check the exact release\nfor fixes. Test heap size and persistent cache as separate variables; revert a\nchange that does not improve the failure or a measured memory trend.",{"type":49,"tag":144,"props":1273,"children":1275},{"id":1274},"multiple-instances",[1276],{"type":55,"value":1277},"Multiple instances",{"type":49,"tag":58,"props":1279,"children":1280},{},[1281,1287,1289,1295,1296,1302,1303,1309],{"type":49,"tag":80,"props":1282,"children":1284},{"className":1283},[],[1285],{"type":55,"value":1286},"METEOR_LOCAL_DIR",{"type":55,"value":1288}," isolates ",{"type":49,"tag":80,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":55,"value":1294},"_build",{"type":55,"value":437},{"type":49,"tag":80,"props":1297,"children":1299},{"className":1298},[],[1300],{"type":55,"value":1301},"build-assets",{"type":55,"value":437},{"type":49,"tag":80,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":55,"value":1308},"build-chunks",{"type":55,"value":161},{"type":49,"tag":163,"props":1311,"children":1313},{"className":623,"code":1312,"language":625,"meta":168,"style":168},"PORT=3000 METEOR_LOCAL_DIR=.meteor\u002Flocal-1 meteor run\nPORT=3001 METEOR_LOCAL_DIR=.meteor\u002Flocal-2 meteor run\n",[1314],{"type":49,"tag":80,"props":1315,"children":1316},{"__ignoreMap":168},[1317,1356],{"type":49,"tag":174,"props":1318,"children":1319},{"class":176,"line":177},[1320,1325,1329,1334,1339,1343,1348,1352],{"type":49,"tag":174,"props":1321,"children":1322},{"style":196},[1323],{"type":55,"value":1324},"PORT",{"type":49,"tag":174,"props":1326,"children":1327},{"style":181},[1328],{"type":55,"value":1231},{"type":49,"tag":174,"props":1330,"children":1331},{"style":187},[1332],{"type":55,"value":1333},"3000",{"type":49,"tag":174,"props":1335,"children":1336},{"style":196},[1337],{"type":55,"value":1338}," METEOR_LOCAL_DIR",{"type":49,"tag":174,"props":1340,"children":1341},{"style":181},[1342],{"type":55,"value":1231},{"type":49,"tag":174,"props":1344,"children":1345},{"style":187},[1346],{"type":55,"value":1347},".meteor\u002Flocal-1",{"type":49,"tag":174,"props":1349,"children":1350},{"style":316},[1351],{"type":55,"value":1249},{"type":49,"tag":174,"props":1353,"children":1354},{"style":187},[1355],{"type":55,"value":1254},{"type":49,"tag":174,"props":1357,"children":1358},{"class":176,"line":207},[1359,1363,1367,1372,1376,1380,1385,1389],{"type":49,"tag":174,"props":1360,"children":1361},{"style":196},[1362],{"type":55,"value":1324},{"type":49,"tag":174,"props":1364,"children":1365},{"style":181},[1366],{"type":55,"value":1231},{"type":49,"tag":174,"props":1368,"children":1369},{"style":187},[1370],{"type":55,"value":1371},"3001",{"type":49,"tag":174,"props":1373,"children":1374},{"style":196},[1375],{"type":55,"value":1338},{"type":49,"tag":174,"props":1377,"children":1378},{"style":181},[1379],{"type":55,"value":1231},{"type":49,"tag":174,"props":1381,"children":1382},{"style":187},[1383],{"type":55,"value":1384},".meteor\u002Flocal-2",{"type":49,"tag":174,"props":1386,"children":1387},{"style":316},[1388],{"type":55,"value":1249},{"type":49,"tag":174,"props":1390,"children":1391},{"style":187},[1392],{"type":55,"value":1254},{"type":49,"tag":144,"props":1394,"children":1396},{"id":1395},"anti-patterns",[1397],{"type":55,"value":1398},"Anti-patterns",{"type":49,"tag":1400,"props":1401,"children":1402},"ul",{},[1403,1415,1446,1458,1476,1481,1486],{"type":49,"tag":68,"props":1404,"children":1405},{},[1406,1408,1413],{"type":55,"value":1407},"Enable optimizations and Rspack at the same time on a legacy app. Enable\n",{"type":49,"tag":80,"props":1409,"children":1411},{"className":1410},[],[1412],{"type":55,"value":1142},{"type":55,"value":1414}," first, clean up Babel fallbacks, then add Rspack.",{"type":49,"tag":68,"props":1416,"children":1417},{},[1418,1420,1425,1426,1431,1432,1437,1439,1444],{"type":55,"value":1419},"Edit files inside ",{"type":49,"tag":80,"props":1421,"children":1423},{"className":1422},[],[1424],{"type":55,"value":1096},{"type":55,"value":437},{"type":49,"tag":80,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":55,"value":1103},{"type":55,"value":445},{"type":49,"tag":80,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":55,"value":1110},{"type":55,"value":1438},", or ",{"type":49,"tag":80,"props":1440,"children":1442},{"className":1441},[],[1443],{"type":55,"value":1118},{"type":55,"value":1445},". Autogenerated.",{"type":49,"tag":68,"props":1447,"children":1448},{},[1449,1451,1456],{"type":55,"value":1450},"Assume ",{"type":49,"tag":80,"props":1452,"children":1454},{"className":1453},[],[1455],{"type":55,"value":994},{"type":55,"value":1457}," prevents code-quality tools from scanning generated\nRspack output. Configure each tool's own ignore mechanism.",{"type":49,"tag":68,"props":1459,"children":1460},{},[1461,1463,1468,1469,1474],{"type":55,"value":1462},"Copy ",{"type":49,"tag":80,"props":1464,"children":1466},{"className":1465},[],[1467],{"type":55,"value":994},{"type":55,"value":1184},{"type":49,"tag":80,"props":1470,"children":1472},{"className":1471},[],[1473],{"type":55,"value":983},{"type":55,"value":1475},". Git may ignore Rspack's generated\nhandoff even though Meteor must read it.",{"type":49,"tag":68,"props":1477,"children":1478},{},[1479],{"type":55,"value":1480},"Remove a custom Atmosphere minifier only because Rspack is enabled.\nBenchmark the final production bundle first.",{"type":49,"tag":68,"props":1482,"children":1483},{},[1484],{"type":55,"value":1485},"Disable Rspack persistent cache without need. It is the default and the\nmain rebuild-speed win. Disable only when investigating OOM or a\ncache-related Rspack bug.",{"type":49,"tag":68,"props":1487,"children":1488},{},[1489,1491,1496,1497,1503,1505,1510],{"type":55,"value":1490},"Name an SWC config ",{"type":49,"tag":80,"props":1492,"children":1494},{"className":1493},[],[1495],{"type":55,"value":803},{"type":55,"value":692},{"type":49,"tag":80,"props":1498,"children":1500},{"className":1499},[],[1501],{"type":55,"value":1502},"rc.swc",{"type":55,"value":1504},". Only ",{"type":49,"tag":80,"props":1506,"children":1508},{"className":1507},[],[1509],{"type":55,"value":780},{"type":55,"value":1511}," is read.",{"type":49,"tag":144,"props":1513,"children":1515},{"id":1514},"see-also",[1516],{"type":55,"value":1517},"See also",{"type":49,"tag":1400,"props":1519,"children":1520},{},[1521,1529,1537,1546],{"type":49,"tag":68,"props":1522,"children":1523},{},[1524],{"type":49,"tag":80,"props":1525,"children":1527},{"className":1526},[],[1528],{"type":55,"value":612},{"type":49,"tag":68,"props":1530,"children":1531},{},[1532],{"type":49,"tag":80,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":55,"value":911},{"type":49,"tag":68,"props":1538,"children":1539},{},[1540],{"type":49,"tag":80,"props":1541,"children":1543},{"className":1542},[],[1544],{"type":55,"value":1545},"references\u002Feval-cases.md",{"type":49,"tag":68,"props":1547,"children":1548},{},[1549,1551,1556],{"type":55,"value":1550},"For converting an existing app to Rspack: ",{"type":49,"tag":80,"props":1552,"children":1554},{"className":1553},[],[1555],{"type":55,"value":664},{"type":55,"value":666},{"type":49,"tag":1558,"props":1559,"children":1560},"style",{},[1561],{"type":55,"value":1562},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1564,"total":1658},[1565,1582,1596,1607,1621,1638,1652],{"slug":1566,"name":1566,"fn":1567,"description":1568,"org":1569,"tags":1570,"stars":20,"repoUrl":21,"updatedAt":1581},"meteor-accounts","implement authentication in Meteor apps","Use when wiring up authentication in a Meteor 3 app. Triggers on accounts-password, accounts-base, OAuth (Google, Facebook, GitHub, Apple, Twitter, Meetup, Weibo), accounts-2fa, accounts-passwordless, ServiceConfiguration.configurations.upsertAsync, Accounts.createUserAsync, Accounts.setPasswordAsync, Accounts.forgotPassword, Accounts.resetPassword, Accounts.verifyEmail, useHttpOnlyCookies, clientStorage, Meteor.loginWithPasswordAnd2faCode, email verification. Use this skill when the user asks about signups, signins, or asks about token storage vs HttpOnly cookies.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1571,1574,1577,1578],{"name":1572,"slug":1573,"type":15},"Auth","auth",{"name":1575,"slug":1576,"type":15},"Authentication","authentication",{"name":9,"slug":8,"type":15},{"name":1579,"slug":1580,"type":15},"OAuth","oauth","2026-08-28T15:08:40.058032",{"slug":1583,"name":1583,"fn":1584,"description":1585,"org":1586,"tags":1587,"stars":20,"repoUrl":21,"updatedAt":1595},"meteor-blaze","build and debug Meteor Blaze interfaces","Use when building or debugging Blaze interfaces in Meteor 3: meteor create --blaze, Spacebars templates, Template helpers and events, lifecycle hooks, Tracker, ReactiveVar or ReactiveDict, template subscriptions, Promise helpers, #let async states, Template.dynamic, Blaze.render, and blaze-hot HMR with the Meteor bundler. Triggers on stale async helper results, lost reactivity after await, data-context lookup surprises, duplicate DOM integrations after HMR, Rspack full reloads, or raw HTML in triple braces. Use this skill when the user asks about reusable Blaze components, current Blaze packages, Rspack entry imports, or testing Blaze templates. For Meteor 2 to 3 upgrades, use migrate-to-meteor-3 instead.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1588,1591,1592],{"name":1589,"slug":1590,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},{"name":1593,"slug":1594,"type":15},"Web Development","web-development","2026-08-28T15:09:37.601349",{"slug":1597,"name":1597,"fn":1598,"description":1599,"org":1600,"tags":1601,"stars":20,"repoUrl":21,"updatedAt":1606},"meteor-community-packages","manage Meteor community packages","Use when choosing, evaluating, adopting, configuring, or debugging a package from Meteor's documented community catalog, or moving from a community package to a promoted core package such as roles. Triggers on community package recommendations, Atmosphere vs npm selection, Packosphere maintenance checks, jam:* helpers, Meteor.publish.once, Meteor.publish.stream, meteor-rpc, Wormhole, cluster, and mail-preview. Use this skill when the user asks which maintained package fits or how its documented integration works. Route Meteor 2-to-3 package failures to migrate-to-meteor-3 and underlying core API design to its owning skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1602,1605],{"name":1603,"slug":1604,"type":15},"Engineering","engineering",{"name":9,"slug":8,"type":15},"2026-08-28T15:08:45.28079",{"slug":1608,"name":1608,"fn":1609,"description":1610,"org":1611,"tags":1612,"stars":20,"repoUrl":21,"updatedAt":1620},"meteor-debugging","diagnose failures in Meteor 3 applications","Use when diagnosing an unexplained failure in a Meteor 3 application before the failing layer or fix is known. Triggers on server crashes, client-only errors, stuck subscriptions, DDP or WebSocket disconnects, Minimongo\u002Fserver data mismatches, hanging or flaky tests, slow builds, --inspect, console.log, .only, Playwright traces, or requests to debug a Meteor app. Use this skill when evidence must distinguish Meteor tool, server, client, data, test, browser, mobile, or production boundaries. For test setup and authoring use meteor-testing; after confirming a domain cause, hand the repair to the owning skill.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1613,1616,1617],{"name":1614,"slug":1615,"type":15},"Debugging","debugging",{"name":9,"slug":8,"type":15},{"name":1618,"slug":1619,"type":15},"WebSockets","websockets","2026-08-28T15:08:40.430401",{"slug":1622,"name":1622,"fn":1623,"description":1624,"org":1625,"tags":1626,"stars":20,"repoUrl":21,"updatedAt":1637},"meteor-deployment","deploy Meteor 3 applications","Use when deploying a Meteor 3 application. Triggers on meteor build, meteor deploy, Galaxy Push to Deploy, Galaxy Mode, Repository Mode, DEPLOY_HOSTNAME, Docker, Kubernetes, settings.json, METEOR_SETTINGS, MONGO_URL, MONGO_OPLOG_URL, ROOT_URL, PORT, HTTP_FORWARDED_COUNT, NODE_OPTIONS, health checks, pre-deploy commands, hot code push, --architecture os.linux.x86_64, --server-only, or a deployed Node.js version mismatch. Use this skill when the user asks about shipping the app, asks about production config, or asks about containerizing.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1627,1630,1633,1636],{"name":1628,"slug":1629,"type":15},"Deployment","deployment",{"name":1631,"slug":1632,"type":15},"Docker","docker",{"name":1634,"slug":1635,"type":15},"Kubernetes","kubernetes",{"name":9,"slug":8,"type":15},"2026-08-28T15:08:44.881769",{"slug":1639,"name":1639,"fn":1640,"description":1641,"org":1642,"tags":1643,"stars":20,"repoUrl":21,"updatedAt":1651},"meteor-methods","author and debug Meteor methods","Use when authoring or debugging Meteor methods (Meteor.methods, Meteor.call, Meteor.callAsync). Triggers on argument validation with check(), optimistic UI stubs, latency compensation, Meteor.Error handling, and DDPRateLimiter. Use this skill when the user asks about server-side mutation, asks about rate limiting RPC, or asks about wrapping a method with auth checks.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1644,1647,1650],{"name":1645,"slug":1646,"type":15},"API Development","api-development",{"name":1648,"slug":1649,"type":15},"Backend","backend",{"name":9,"slug":8,"type":15},"2026-08-28T15:09:38.691128",{"slug":4,"name":4,"fn":5,"description":6,"org":1653,"tags":1654,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1655,1656,1657],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},14,{"items":1660,"total":1658},[1661,1668,1674,1679,1685,1692,1698,1704,1719,1731,1744,1759],{"slug":1566,"name":1566,"fn":1567,"description":1568,"org":1662,"tags":1663,"stars":20,"repoUrl":21,"updatedAt":1581},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1664,1665,1666,1667],{"name":1572,"slug":1573,"type":15},{"name":1575,"slug":1576,"type":15},{"name":9,"slug":8,"type":15},{"name":1579,"slug":1580,"type":15},{"slug":1583,"name":1583,"fn":1584,"description":1585,"org":1669,"tags":1670,"stars":20,"repoUrl":21,"updatedAt":1595},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1671,1672,1673],{"name":1589,"slug":1590,"type":15},{"name":9,"slug":8,"type":15},{"name":1593,"slug":1594,"type":15},{"slug":1597,"name":1597,"fn":1598,"description":1599,"org":1675,"tags":1676,"stars":20,"repoUrl":21,"updatedAt":1606},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1677,1678],{"name":1603,"slug":1604,"type":15},{"name":9,"slug":8,"type":15},{"slug":1608,"name":1608,"fn":1609,"description":1610,"org":1680,"tags":1681,"stars":20,"repoUrl":21,"updatedAt":1620},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1682,1683,1684],{"name":1614,"slug":1615,"type":15},{"name":9,"slug":8,"type":15},{"name":1618,"slug":1619,"type":15},{"slug":1622,"name":1622,"fn":1623,"description":1624,"org":1686,"tags":1687,"stars":20,"repoUrl":21,"updatedAt":1637},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1688,1689,1690,1691],{"name":1628,"slug":1629,"type":15},{"name":1631,"slug":1632,"type":15},{"name":1634,"slug":1635,"type":15},{"name":9,"slug":8,"type":15},{"slug":1639,"name":1639,"fn":1640,"description":1641,"org":1693,"tags":1694,"stars":20,"repoUrl":21,"updatedAt":1651},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1695,1696,1697],{"name":1645,"slug":1646,"type":15},{"name":1648,"slug":1649,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":1699,"tags":1700,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1701,1702,1703],{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},{"name":13,"slug":14,"type":15},{"slug":1705,"name":1705,"fn":1706,"description":1707,"org":1708,"tags":1709,"stars":20,"repoUrl":21,"updatedAt":1718},"meteor-mongo-minimongo","author and debug Meteor MongoDB queries","Use when authoring or debugging Mongo queries in Meteor 3. Triggers on Mongo.Collection, find\u002FfindOne, server async vs client Minimongo sync, oplog vs change streams, indexes, selectors, modifiers, projections. Use this skill when the user asks about Mongo on the server or asks about Minimongo on the client.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1710,1713,1714,1715],{"name":1711,"slug":1712,"type":15},"Database","database",{"name":1614,"slug":1615,"type":15},{"name":9,"slug":8,"type":15},{"name":1716,"slug":1717,"type":15},"MongoDB","mongodb","2026-08-28T15:08:44.473981",{"slug":1720,"name":1720,"fn":1721,"description":1722,"org":1723,"tags":1724,"stars":20,"repoUrl":21,"updatedAt":1730},"meteor-pubsub","author and debug Meteor publications","Use when authoring or debugging Meteor publications and subscriptions (Meteor.publish, Meteor.subscribe). Triggers on publication strategies (SERVER_MERGE, NO_MERGE, NO_MERGE_NO_HISTORY), the low-level publish API (added\u002Fchanged\u002Fremoved), cursor authorization, reactive joins, leaked documents. Use this skill when the user asks about pub\u002Fsub or asks about reactive data fetching.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1725,1726,1727],{"name":1648,"slug":1649,"type":15},{"name":9,"slug":8,"type":15},{"name":1728,"slug":1729,"type":15},"Real-time","real-time","2026-08-28T15:09:37.97396",{"slug":1732,"name":1732,"fn":1733,"description":1734,"org":1735,"tags":1736,"stars":20,"repoUrl":21,"updatedAt":1743},"meteor-react","build and debug Meteor React interfaces","Use when building or debugging React interfaces in Meteor 3: meteor create --react, createRoot, JSX or TSX entry points, Rspack React detection, Fast Refresh, react-meteor-data, useTracker, useSubscribe, useFind, withTracker, Suspense, and Tracker.withComputation. Triggers on isLoading being treated as a boolean, useFind receiving fetch(), stale closure inputs, duplicate tracker side effects, unstable Suspense keys, lost reactivity after await, state reset after refresh, or React tests leaking computations. Use this skill when the user asks about a React skeleton, React-specific rspack.config rules, reactive data hooks, or classic versus Suspense integration. Route general bundler configuration to meteor-modern-build-stack and Meteor 2 upgrades to migrate-to-meteor-3.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1737,1738,1739,1742],{"name":1589,"slug":1590,"type":15},{"name":9,"slug":8,"type":15},{"name":1740,"slug":1741,"type":15},"React","react",{"name":1593,"slug":1594,"type":15},"2026-08-28T15:09:37.193947",{"slug":1745,"name":1745,"fn":1746,"description":1747,"org":1748,"tags":1749,"stars":20,"repoUrl":21,"updatedAt":1758},"meteor-security","audit and harden Meteor 3 applications","Use when auditing or hardening a Meteor 3 application. Triggers on missing check() on method arguments, missing this.userId guards on publications, browser-policy CSP, DDPRateLimiter rules, oauth-encryption via Accounts.config oauthSecretKey, audit-argument-checks, allow\u002Fdeny legacy patterns, BrowserPolicy.content.disallowInlineScripts, BrowserPolicy.framing.disallow. Use this skill when the user asks about hardening, asks about a security review, or asks about CSP for a third-party script (Stripe, Google Maps, fonts).\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1750,1751,1754,1755],{"name":1572,"slug":1573,"type":15},{"name":1752,"slug":1753,"type":15},"Code Analysis","code-analysis",{"name":9,"slug":8,"type":15},{"name":1756,"slug":1757,"type":15},"Security","security","2026-08-28T15:09:32.604319",{"slug":1760,"name":1760,"fn":1761,"description":1762,"org":1763,"tags":1764,"stars":20,"repoUrl":21,"updatedAt":1772},"meteor-testing","write and repair Meteor test harnesses","Use when setting up, designing, writing, or repairing tests and test harnesses in a Meteor 3 app. Triggers on meteortesting:mocha, --driver-package, TEST_WATCH, TEST_BROWSER_DRIVER, MOCHA_GREP, meteor.testModule, focused tests, .only, Meteor.server.method_handlers, Meteor.server.publish_handlers, DDP.connect, --full-app integration mode, sinon, async test signatures, Playwright\u002FCypress E2E. Use this skill when the user asks about test runners, asks about testing publications, or asks about Jest vs Mocha in Meteor. For a failing, hanging, or flaky test whose failing layer or root cause is unknown, use meteor-debugging before changing the test or app.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1765,1766,1769],{"name":9,"slug":8,"type":15},{"name":1767,"slug":1768,"type":15},"QA","qa",{"name":1770,"slug":1771,"type":15},"Testing","testing","2026-08-28T15:09:38.330724"]