mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-12 10:11:42 -04:00
`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.
107 lines
1.8 KiB
JSON
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"
|
|
}
|
|
]
|
|
}
|