Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
cf2c46a
feat: add rslib monorepo harness runner
cursoragent Feb 16, 2026
018a831
test: add coverage for rslib harness resolver
cursoragent Feb 16, 2026
e5e5a1b
test: expand rslib harness parser and args coverage
cursoragent Feb 16, 2026
47d7921
docs: add rslib harness usage examples
cursoragent Feb 16, 2026
bbd8664
ci: run rslib harness tests in ci-local jobs
cursoragent Feb 16, 2026
6c8b8e6
chore: add rslib harness list and inspect scripts
cursoragent Feb 16, 2026
1ab9fef
docs: document harness inspect command usage
cursoragent Feb 16, 2026
7ac934d
fix: use fast-glob for node20 harness compatibility
cursoragent Feb 16, 2026
217b4b6
ci: verify rslib harness coverage in local pipeline
cursoragent Feb 16, 2026
fae10d4
test: cover harness ignore patterns
cursoragent Feb 16, 2026
758f2e1
feat: add json output mode for harness listing
cursoragent Feb 16, 2026
af1ac71
test: validate harness json list output
cursoragent Feb 16, 2026
a065fd5
test: add harness dedupe and filter failure coverage
cursoragent Feb 16, 2026
20e992a
ci: run harness checks in build-and-test workflow
cursoragent Feb 16, 2026
290057d
ci: verify harness checks are wired in workflows
cursoragent Feb 16, 2026
3415554
feat: make json mode auto-enable project listing
cursoragent Feb 16, 2026
7980100
feat: emit structured command plans for json dry-runs
cursoragent Feb 16, 2026
99da960
test: enforce deterministic harness project ordering
cursoragent Feb 16, 2026
77d329b
test: assert sorted json dry-run command plans
cursoragent Feb 16, 2026
a044010
fix: require dry-run for json command output
cursoragent Feb 16, 2026
200ff0a
fix: validate harness config entry shapes
cursoragent Feb 16, 2026
af59ac2
test: expand parser and filter validation coverage
cursoragent Feb 16, 2026
980a43d
fix: reject unknown harness config keys
cursoragent Feb 16, 2026
15ae47b
test: broaden parseCliArgs failure case coverage
cursoragent Feb 16, 2026
66b1040
test: cover nested schema validation errors
cursoragent Feb 16, 2026
8067503
fix: validate harness root type
cursoragent Feb 16, 2026
efdd0f3
fix: reject array defaults in harness config
cursoragent Feb 16, 2026
32bb5ea
feat: support inline config and root options
cursoragent Feb 16, 2026
3673ee9
fix: validate explicit project config filenames
cursoragent Feb 16, 2026
b46cf17
fix: harden object entry path validation
cursoragent Feb 16, 2026
dc7c13c
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 19, 2026
cd82e5f
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 19, 2026
6084623
Merge remote-tracking branch 'origin/main' into cursor/rslib-configur…
ScriptedAlchemy Feb 24, 2026
a5ecc0e
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 25, 2026
70504ed
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 25, 2026
fbe818f
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 26, 2026
e8ca8e4
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 26, 2026
f379fff
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 27, 2026
668b0cd
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 27, 2026
90a3efe
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 28, 2026
9f0c1db
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Feb 28, 2026
29529f7
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 2, 2026
ebce164
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 3, 2026
2a43b3c
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 5, 2026
6ce0f52
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 9, 2026
41149ed
Merge remote-tracking branch 'origin/main' into cursor/rslib-configur…
ScriptedAlchemy Mar 10, 2026
da4369c
Merge remote-tracking branch 'origin/main' into cursor/rslib-configur…
ScriptedAlchemy Mar 11, 2026
912824d
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 11, 2026
823b58b
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 11, 2026
5a832ba
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 12, 2026
21816f7
Merge remote-tracking branch 'origin/main' into cursor/rslib-configur…
ScriptedAlchemy Mar 13, 2026
b767efd
Merge remote-tracking branch 'origin/main' into cursor/rslib-configur…
ScriptedAlchemy Mar 17, 2026
b5ffc6b
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 18, 2026
fd2b987
Merge branch 'main' into cursor/rslib-configuration-harness-cdc5
ScriptedAlchemy Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,62 @@ To get started with Module Federation, see the [Quick Start](https://module-fede

Come and chat with us on [Discussions](https://github.com/module-federation/universe/discussions) or [Discord](https://discord.gg/n69NnT3ACV)! The Module federation team and users are active there, and we're always looking for contributions.

## 🧪 Rslib Monorepo Harness

This repository includes a workspace-level Rslib harness that can orchestrate
multiple `rslib.config.*` projects from the repo root (including nested project
definitions via harness config files).

Quick examples:

- List resolved projects:

```bash
pnpm run rslib:harness list
```

- List resolved projects as JSON:

```bash
pnpm run rslib:harness list --json
```

`--json` also implies list output when used with other commands.

- Emit a machine-readable dry-run command plan:

```bash
pnpm run rslib:harness:build --project create-module-federation --json --dry-run
```

For non-`list` commands, `--json` is only supported with `--dry-run`.

- Build a single project by name/path filter:

```bash
pnpm run rslib:harness:build --project create-module-federation
```

- Show commands without executing:

```bash
pnpm run rslib:harness:build --project create-module-federation --dry-run
```

- Inspect one project's generated config outputs:

```bash
pnpm run rslib:harness:inspect --project create-module-federation
```

- Verify harness coverage against repo Rslib configs:

```bash
pnpm run verify:rslib-harness
```

The default root harness config is `rslib.harness.config.mjs`.

## 🤝 Contribution

> New contributors welcome!
Expand Down
138 changes: 78 additions & 60 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,67 +19,50 @@
],
"license": "MIT",
"scripts": {
"turbo": "turbo",
"nx": "nx",
"nx:safe": "./scripts/nx-worktree.sh",
"setup:codex": "./scripts/codex-setup.sh",
"commit": "cz",
"docs": "typedoc",
"f": "pnpm exec prettier --write .",
"f": "nx format:write",
"ci:local": "node tools/scripts/ci-local.mjs",
"verify:turbo": "node tools/scripts/verify-turbo-conventions.mjs",
"e2e:modern": "pnpm exec turbo run test --filter=@module-federation/modern-js --filter=@module-federation/modern-js-v3 --concurrency=20",
"e2e:runtime": "pnpm exec turbo run test:e2e --filter=runtime-host",
"e2e:manifest:dev": "pnpm exec turbo run test:e2e --filter=3008-webpack-host",
"e2e:manifest:prod": "pnpm exec turbo run test:e2e:production --filter=3008-webpack-host",
"e2e:node": "node tools/scripts/run-node-e2e.mjs",
"e2e:next:dev": "pnpm exec turbo run test:e2e --filter=@module-federation/3000-home",
"e2e:next:prod": "pnpm exec turbo run test:e2e:production --filter=@module-federation/3000-home",
"e2e:treeshake:server": "pnpm exec turbo run test --filter=@module-federation/treeshake-server",
"e2e:treeshake:frontend": "pnpm exec turbo run e2e --filter=@module-federation/treeshake-frontend",
"e2e:modern:ssr": "node tools/scripts/run-modern-e2e.mjs --mode=manifest",
"e2e:router": "node tools/scripts/run-router-e2e.mjs --mode=dev",
"e2e:shared-tree-shaking:runtime-infer": "npx kill-port --port 3001,3002 && pnpm exec turbo run test:e2e --filter=shared-tree-shaking-no-server-host && lsof -ti tcp:3001,3002 | xargs kill",
"e2e:shared-tree-shaking:server-calc": "npx kill-port --port 3001,3002,3003 && pnpm exec turbo run test:e2e --filter=shared-tree-shaking-with-server-host && lsof -ti tcp:3001,3002,3003 | xargs kill",
"e2e:devtools:dev": "npx kill-port 3009 3010 3011 3012 3013 4001 && pnpm run app:manifest:dev & echo \"done\" && npx wait-on tcp:3009 tcp:3010 tcp:3011 tcp:3012 tcp:3013 && sleep 10 && pnpm exec turbo run test:e2e --filter=@module-federation/devtools",
"e2e:devtools:prod": "npx kill-port 3009 3010 3011 3012 3013 4001 && npx kill-port 3009 3010 3011 3012 3013 4001 && pnpm run app:manifest:prod & echo \"done\" && npx wait-on tcp:3009 tcp:3010 tcp:3011 tcp:3012 tcp:3013 && sleep 30 && pnpm exec turbo run test:e2e --filter=@module-federation/devtools",
"enhanced:rstest": "pnpm --filter @module-federation/enhanced run build && NODE_OPTIONS=--experimental-vm-modules npx rstest -c packages/enhanced/rstest.config.ts",
"lint": "pnpm run lint:packages",
"test": "pnpm exec turbo run test",
"test:affected": "node tools/scripts/run-affected-package-tests.mjs",
"build": "pnpm run build:packages",
"build:all": "pnpm exec turbo run build --concurrency=20",
"build:apps": "pnpm exec turbo run build --filter=./apps/** --concurrency=20",
"build:packages": "pnpm exec turbo run build --filter=./packages/** --concurrency=20",
"test:packages": "pnpm exec turbo run test --filter=./packages/** --concurrency=20",
"lint:packages": "pnpm exec turbo run lint --filter=./packages/**",
"lint-fix": "node tools/scripts/lint-fix.mjs",
"enhanced:rstest": "nx run enhanced:build && NODE_OPTIONS=--experimental-vm-modules npx rstest -c packages/enhanced/rstest.config.ts",
"lint": "nx run-many --target=lint",
"test": "nx run-many --target=test",
"build": "NX_TUI=false nx run-many --target=build --parallel=5 --projects=tag:type:pkg",
"rslib:harness": "node ./scripts/rslib-harness.mjs",
"rslib:harness:list": "node ./scripts/rslib-harness.mjs list",
"rslib:harness:build": "node ./scripts/rslib-harness.mjs build",
"rslib:harness:inspect": "node ./scripts/rslib-harness.mjs inspect",
"test:rslib-harness": "node --test ./scripts/__tests__/rslib-harness.test.mjs",
"verify:rslib-harness": "node ./tools/scripts/verify-rslib-harness-coverage.mjs",
"verify:rslib-harness:workflow": "node ./tools/scripts/verify-rslib-harness-workflow-coverage.mjs",
"build:pkg": "NX_TUI=false nx run-many --targets=build --projects=tag:type:pkg --skip-nx-cache",
"test:pkg": "NX_TUI=false nx run-many --targets=test --projects=tag:type:pkg --skip-nx-cache",
"lint-fix": "nx format:write --uncommitted",
"trigger-release": "node -e 'import(\"open\").then(open => open.default(\"https://github.com/module-federation/core/actions/workflows/trigger-release.yml\"))'",
"serve:next": "pnpm exec turbo run serve --filter=@module-federation/3000-home --filter=@module-federation/3001-shop --filter=@module-federation/3002-checkout --filter=app-router-4000 --filter=app-router-4001 --concurrency=20",
"app:router:build": "pnpm exec turbo run build --filter=host --filter=host-v5 --filter=host-vue3 --filter=remote1 --filter=remote2 --filter=remote3 --filter=remote4 --filter=remote5 --filter=remote6 --concurrency=20",
"app:router:dev": "pnpm exec turbo run serve --filter=host --filter=host-v5 --filter=host-vue3 --filter=remote1 --filter=remote2 --filter=remote3 --filter=remote4 --filter=remote5 --filter=remote6 --concurrency=20",
"app:next-router:build": "pnpm exec turbo run build --filter=app-router-4000 --filter=app-router-4001 --concurrency=20",
"app:next-router:dev": "pnpm exec turbo run serve --filter=app-router-4000 --filter=app-router-4001",
"serve:website": "pnpm --filter website-new run serve",
"build:website": "pnpm exec turbo run build --filter=website-new --concurrency=20",
"extract-i18n:website": "pnpm --filter website-new run extract-i18n",
"serve:next": "nx run-many --target=serve --all --parallel=3 -exclude='*,!tag:nextjs'",
"app:router:dev": "nx run-many --target=serve --parallel=10 --projects='router-*'",
"app:next-router:dev": "nx run-many --target=serve --projects=next-app-router-4000,next-app-router-4001 --parallel",
"serve:website": "nx run website-new:serve",
"build:website": "NX_TUI=false nx run website-new:build",
"extract-i18n:website": "nx run website:extract-i18n",
"sync:webpack:types": "node ./scripts/sync-webpack-unbundled-types.mjs",
"sync:pullMFTypes": "concurrently \"node ./packages/enhanced/pullts.js\"",
"app:next:dev": "pnpm exec turbo run serve:development --filter=@module-federation/3000-home --filter=@module-federation/3001-shop --filter=@module-federation/3002-checkout",
"app:next:build": "pnpm exec turbo run build:production --filter=@module-federation/3000-home --filter=@module-federation/3001-shop --filter=@module-federation/3002-checkout --concurrency=20",
"app:next:prod": "pnpm run app:next:build && pnpm exec turbo run serve:production --filter=@module-federation/3000-home --filter=@module-federation/3001-shop --filter=@module-federation/3002-checkout",
"app:node:build": "pnpm exec turbo run build --filter=node-host --filter=node-local-remote --filter=node-remote --filter=node-dynamic-remote-new-version --filter=node-dynamic-remote --concurrency=20",
"app:node:dev": "pnpm exec turbo run serve:development --filter=node-host --filter=node-local-remote --filter=node-remote --filter=node-dynamic-remote-new-version --filter=node-dynamic-remote --concurrency=20",
"app:runtime:build": "pnpm exec turbo run build --filter=runtime-host --filter=runtime-remote1 --filter=runtime-remote2 --concurrency=20",
"app:runtime:dev": "pnpm exec turbo run serve:development --filter=runtime-host --filter=runtime-remote1 --filter=runtime-remote2",
"app:manifest:build": "pnpm exec turbo run build --filter=3008-webpack-host --filter=3009-webpack-provider --filter=3010-rspack-provider --filter=3011-rspack-manifest-provider --filter=3012-rspack-js-entry-provider --concurrency=20",
"app:manifest:dev": "pnpm exec turbo run serve:development --filter=3008-webpack-host --filter=3009-webpack-provider --filter=3010-rspack-provider --filter=3011-rspack-manifest-provider --filter=3012-rspack-js-entry-provider --concurrency=20",
"app:manifest:prod": "pnpm exec turbo run serve:production --filter=3008-webpack-host --filter=3009-webpack-provider --filter=3010-rspack-provider --filter=3011-rspack-manifest-provider --filter=3012-rspack-js-entry-provider --concurrency=20",
"app:ts:dev": "pnpm exec turbo run serve --filter=react-ts-host --filter=react-ts-nested-remote --filter=react-ts-remote",
"app:component-data-fetch:build": "pnpm exec turbo run build --filter=modernjs-ssr-data-fetch-provider --filter=modernjs-ssr-data-fetch-provider-csr --filter=modernjs-ssr-data-fetch-host --concurrency=20",
"app:component-data-fetch:dev": "pnpm exec turbo run dev --filter=modernjs-ssr-data-fetch-provider --filter=modernjs-ssr-data-fetch-provider-csr --filter=modernjs-ssr-data-fetch-host --concurrency=20",
"app:modern:build": "pnpm exec turbo run build --filter=modernjs-ssr-dynamic-nested-remote --filter=modernjs-ssr-dynamic-remote --filter=modernjs-ssr-dynamic-remote-new-version --filter=modernjs-ssr-host --filter=modernjs-ssr-nested-remote --filter=modernjs-ssr-remote --filter=modernjs-ssr-remote-new-version --concurrency=20",
"app:modern:dev": "pnpm exec turbo run dev --filter=modernjs-ssr-dynamic-nested-remote --filter=modernjs-ssr-dynamic-remote --filter=modernjs-ssr-dynamic-remote-new-version --filter=modernjs-ssr-host --filter=modernjs-ssr-nested-remote --filter=modernjs-ssr-remote --filter=modernjs-ssr-remote-new-version --concurrency=20",
"app:next:dev": "nx run-many --target=serve --configuration=development -p 3000-home,3001-shop,3002-checkout",
"app:next:build": "nx run-many --target=build --parallel=2 --configuration=production -p 3000-home,3001-shop,3002-checkout",
"app:next:prod": "nx run-many --target=serve --configuration=production -p 3000-home,3001-shop,3002-checkout",
"app:node:dev": "nx run-many --target=serve --parallel=10 --configuration=development -p node-host,node-local-remote,node-remote,node-dynamic-remote-new-version,node-dynamic-remote",
"app:runtime:dev": "nx run-many --target=serve --configuration=development -p 3005-runtime-host,3006-runtime-remote,3007-runtime-remote",
"app:manifest:dev": "NX_TUI=false nx run-many --target=serve --configuration=development --parallel=100 -p modernjs,manifest-webpack-host,3009-webpack-provider,3010-rspack-provider,3011-rspack-manifest-provider,3012-rspack-js-entry-provider",
"app:manifest:prod": "NX_TUI=false nx run-many --target=serve --configuration=production --parallel=100 -p modernjs,manifest-webpack-host,3009-webpack-provider,3010-rspack-provider,3011-rspack-manifest-provider,3012-rspack-js-entry-provider",
"app:ts:dev": "nx run-many --target=serve -p react_ts_host,react_ts_nested_remote,react_ts_remote",
"app:component-data-fetch:dev": "NX_TUI=false nx run-many --target=serve --parallel=3 --configuration=development -p modernjs-ssr-data-fetch-provider,modernjs-ssr-data-fetch-provider-csr,modernjs-ssr-data-fetch-host",
"app:modern:dev": "NX_TUI=false nx run-many --target=serve --parallel=10 --configuration=development -p modernjs-ssr-dynamic-nested-remote,modernjs-ssr-dynamic-remote,modernjs-ssr-dynamic-remote-new-version,modernjs-ssr-host,modernjs-ssr-nested-remote,modernjs-ssr-remote,modernjs-ssr-remote-new-version",
"commitlint": "commitlint --edit",
"prepare": "husky install",
"changeset": "changeset",
"build:packages": "npx nx affected -t build --parallel=10 --exclude='*,!tag:type:pkg'",
"changegen": "./changeset-gen.js --path ./packages/runtime && ./changeset-gen.js --path ./packages/runtime-core && ./changeset-gen.js --path ./packages/sdk &&./changeset-gen.js --path ./packages/cli --staged && ./changeset-gen.js --path ./packages/enhanced && ./changeset-gen.js --path ./packages/node && ./changeset-gen.js --path ./packages/data-prefetch && ./changeset-gen.js --path ./packages/nextjs-mf && ./changeset-gen.js --path ./packages/dts-plugin && ./changeset-gen.js --path ./packages/metro-core",
"commitgen:staged": "./commit-gen.js --path ./packages --staged",
"commitgen:main": "./commit-gen.js --path ./packages",
Expand All @@ -94,15 +77,31 @@
"@changesets/assemble-release-plan": "workspace:*"
}
},
"@nx/rollup": {
"dependencies": {
"typescript": "*"
}
},
"@nx/js": {
"dependencies": {
"typescript": "*"
}
},
"nx": {
"dependencies": {
"prettier": "*"
}
},
"next": {
"dependencies": {
"webpack": "*"
}
},
"react-server-dom-webpack@19.2.4": {
"peerDependencies": {
"react": ">=18",
"react-dom": ">=18"
"@nx/module-federation": {
"peerDependenciesMeta": {
"next": {
"optional": true
}
}
},
"@storybook/nextjs": {
Expand Down Expand Up @@ -157,6 +156,7 @@
"esbuild",
"fsevents",
"msw",
"nx",
"sharp",
"unrs-resolver"
]
Expand Down Expand Up @@ -185,16 +185,34 @@
"devDependencies": {
"@babel/core": "^7.28.0",
"@babel/plugin-transform-react-jsx": "7.27.1",
"@babel/preset-env": "^7.28.0",
"@babel/preset-react": "^7.27.1",
"@babel/preset-typescript": "^7.28.0",
"@changesets/cli": "^2.27.9",
"@chromatic-com/storybook": "^1.7.0",
"@commitlint/cli": "^19.4.1",
"@commitlint/config-conventional": "19.5.0",
"@commitlint/config-nx-scopes": "19.5.0",
"@commitlint/cz-commitlint": "19.5.0",
"@fontsource/roboto": "5.1.0",
"@fontsource/roboto-mono": "5.1.0",
"@module-federation/enhanced": "workspace:*",
"@module-federation/node": "workspace:*",
"@nx/cypress": "21.2.3",
"@nx/devkit": "21.2.3",
"@nx/esbuild": "21.2.3",
"@nx/eslint": "21.2.3",
"@nx/eslint-plugin": "21.2.3",
"@nx/express": "21.2.3",
"@nx/jest": "21.2.3",
"@nx/js": "21.2.3",
"@nx/module-federation": "21.2.3",
"@nx/node": "21.2.3",
"@nx/react": "21.2.3",
"@nx/rollup": "21.2.3",
"@nx/rspack": "21.2.3",
"@nx/storybook": "21.2.3",
"@nx/vite": "21.2.3",
"@nx/web": "21.2.3",
"@nx/webpack": "21.2.3",
"@playwright/test": "1.57.0",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.15",
"@rollup/plugin-alias": "5.1.1",
Expand Down Expand Up @@ -263,11 +281,11 @@
"jest-environment-node": "29.7.0",
"jiti": "2.6.1",
"js-yaml": "4.1.0",
"jsonc-eslint-parser": "^3.1.0",
"kill-port": "^2.0.1",
"mime-types": "2.1.35",
"msw": "^1.2.1",
"node-fetch": "~3.3.2",
"nx": "21.2.3",
"open": "^10.1.0",
"postcss-calc": "9.0.1",
"postcss-custom-properties": "13.3.12",
Expand All @@ -277,6 +295,7 @@
"prettier-eslint": "16.3.0",
"prettier-plugin-tailwindcss": "0.5.14",
"publint": "^0.3.13",
"qwik-nx": "^3.1.1",
"react-refresh": "0.14.2",
"rimraf": "^6.0.1",
"rollup-plugin-copy": "3.5.0",
Expand All @@ -292,7 +311,6 @@
"tsdown": "0.20.3",
"tslib": "2.8.1",
"tsup": "7.3.0",
"turbo": "^2.5.8",
"typescript": "5.9.3",
"url-loader": "4.1.1",
"vite": "7.3.1",
Expand Down
30 changes: 30 additions & 0 deletions rslib.harness.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Rslib monorepo harness configuration.
*
* Supported project entry forms:
* - string path / glob:
* - directory (auto-detect rslib.config.*)
* - explicit rslib.config.* file
* - nested rslib.harness.config.* file
* - object:
* {
* name?: string;
* root?: string;
* config?: string;
* args?: string[];
* ignore?: string[];
* projects?: (string | object)[];
* }
*
* Notes:
* - `<rootDir>` token is supported in path values.
* - this root harness intentionally targets publishable package projects and
* app-level rslib projects in apps/.
*/
export default {
ignore: ['**/dist/**', '**/.{idea,cache,output,temp}/**'],
projects: [
'packages/*/rslib.config.{mjs,ts,js,cjs,mts,cts}',
'apps/**/rslib.config.{mjs,ts,js,cjs,mts,cts}',
],
};
Loading
Loading