Files
pnpm/exec/commands/tsconfig.json
Zoltan Kochan f6bc1db683 fix(dlx): prompt to approve ignored builds (#11452)
`pnpm dlx` (and `pnpx`/`pnx`/`pnpm create`) now mirrors the `pnpm add -g` flow when the launched package's transitive deps have install scripts:

- dlx overrides `strictDepBuilds: false` for its install so the v11 default no longer turns ignored builds into an `ERR_PNPM_IGNORED_BUILDS` error. Without this, `pnpx @google/gemini-cli` (and similar — `node-pty`, `@github/keytar`) failed outright and forced users to retry with `--allow-build=<pkg>` for every offending dependency.
- After install, dlx detects skipped builds via `getAutomaticallyIgnoredBuilds` and runs the same interactive `approve-builds` prompt as `pnpm add -g`. In non-interactive mode the install is committed with builds skipped, matching `pnpm add -g` in CI; users who need those scripts can re-invoke with `--allow-build=<pkg>` to force a fresh cache key.
- If the install errors for unrelated reasons (network, etc.) the partially-populated prepare directory is removed so the next dlx run starts clean.

Closes #11444.

### Plumbing

- Exports `getAutomaticallyIgnoredBuilds` from `@pnpm/building.commands` so dlx can detect skipped builds without re-implementing modules-yaml reading.
- Adds `strictDepBuilds` (optional) to `InstallCommandOptions` — already accepted at runtime via the spread, this just makes it explicit at the type level so callers can override it.
2026-05-04 22:11:22 +02:00

107 lines
1.8 KiB
JSON

{
"extends": "@pnpm/tsconfig",
"compilerOptions": {
"outDir": "lib",
"rootDir": "src"
},
"include": [
"src/**/*.ts",
"../../__typings__/**/*.d.ts"
],
"references": [
{
"path": "../../__utils__/prepare"
},
{
"path": "../../__utils__/test-ipc-server"
},
{
"path": "../../bins/resolver"
},
{
"path": "../../building/commands"
},
{
"path": "../../catalogs/resolver"
},
{
"path": "../../cli/command"
},
{
"path": "../../cli/common-cli-options-help"
},
{
"path": "../../cli/utils"
},
{
"path": "../../config/reader"
},
{
"path": "../../config/version-policy"
},
{
"path": "../../core/core-loggers"
},
{
"path": "../../core/error"
},
{
"path": "../../core/logger"
},
{
"path": "../../core/types"
},
{
"path": "../../crypto/hash"
},
{
"path": "../../deps/status"
},
{
"path": "../../engine/runtime/commands"
},
{
"path": "../../engine/runtime/system-node-version"
},
{
"path": "../../installing/client"
},
{
"path": "../../installing/commands"
},
{
"path": "../../pkg-manifest/reader"
},
{
"path": "../../resolving/parse-wanted-dependency"
},
{
"path": "../../shell/path"
},
{
"path": "../../store/path"
},
{
"path": "../../testing/command-defaults"
},
{
"path": "../../workspace/injected-deps-syncer"
},
{
"path": "../../workspace/project-manifest-reader"
},
{
"path": "../../workspace/projects-filter"
},
{
"path": "../../workspace/projects-sorter"
},
{
"path": "../lifecycle"
},
{
"path": "../pnpm-cli-runner"
}
]
}