mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-08 04:49:45 -05:00
The `Publish nightly npm packages` workflow started failing at the
"Pack the core package" step with:
Cannot find module '@actual-app/crdt' or its corresponding type declarations.
PR #7541 switched `@actual-app/crdt`'s package.json to conditional
exports (`types` → `./dist/index.d.ts`). `yarn pack` for
`@actual-app/core` triggers a prepack that runs `tsgo -b`, which now
resolves `@actual-app/crdt` via the `types` condition and expects
`packages/crdt/dist/index.d.ts`. Nothing was building crdt first
because loot-core's tsconfig didn't declare it as a project
reference.
Fix: declare the project reference so `tsgo -b` walks the graph and
builds crdt before loot-core. Sibling packages already do this.
Also adopt `@monorepo-utils/workspaces-to-typescript-project-references`
to keep each package's tsconfig `references` in sync with its
`workspace:*` deps, and wire it into a new `yarn check:tsconfig-references`
step in the `check` CI job plus lint-staged. Running the tool added
`../desktop-client` references to sync-server and desktop-electron
(both declare `@actual-app/web` as a workspace dep even though they
only use it at runtime via `require.resolve`); the extra references
are harmless — in CI the corresponding build is already cached by
earlier steps.
https://claude.ai/code/session_01AA2gEMqX24GWeq5BovNmaz
43 lines
876 B
JSON
43 lines
876 B
JSON
{
|
|
"extends": "../../tsconfig.json",
|
|
"compilerOptions": {
|
|
"composite": true,
|
|
// Using ES2021 because that's the newest version where
|
|
// the latest Node 16.x release supports all of the features
|
|
"target": "ES2021",
|
|
"module": "es2022",
|
|
"moduleResolution": "bundler",
|
|
"customConditions": ["api"],
|
|
"noEmit": false,
|
|
"declaration": true,
|
|
"declarationMap": true,
|
|
"outDir": "dist",
|
|
"rootDir": ".",
|
|
"declarationDir": "@types",
|
|
"tsBuildInfoFile": "dist/.tsbuildinfo",
|
|
"plugins": [
|
|
{
|
|
"name": "typescript-strict-plugin",
|
|
"paths": ["."]
|
|
}
|
|
]
|
|
},
|
|
"references": [
|
|
{
|
|
"path": "../loot-core"
|
|
},
|
|
{
|
|
"path": "../crdt"
|
|
}
|
|
],
|
|
"include": ["."],
|
|
"exclude": [
|
|
"**/node_modules/*",
|
|
"dist",
|
|
"@types",
|
|
"*.test.ts",
|
|
"*.config.ts",
|
|
"*.config.mts"
|
|
]
|
|
}
|