From c242672f5a3b227e0df2844a458ae75e969fa207 Mon Sep 17 00:00:00 2001 From: JacobLinCool Date: Tue, 23 Aug 2022 00:24:09 +0800 Subject: [PATCH] feat(env): show state on fetching node (#5241) * feat(env): show state on fetching node * fix: use internal logger instead of console.log * chore: add changeset --- .changeset/purple-tools-leave.md | 5 +++++ packages/plugin-commands-env/package.json | 1 + packages/plugin-commands-env/src/node.ts | 2 ++ pnpm-lock.yaml | 3 +++ 4 files changed, 11 insertions(+) create mode 100644 .changeset/purple-tools-leave.md diff --git a/.changeset/purple-tools-leave.md b/.changeset/purple-tools-leave.md new file mode 100644 index 0000000000..6acd000de0 --- /dev/null +++ b/.changeset/purple-tools-leave.md @@ -0,0 +1,5 @@ +--- +"@pnpm/plugin-commands-env": minor +--- + +Add an immediate response when fetching Node.js on version switching, preventing pnpm looks like just hanging there. diff --git a/packages/plugin-commands-env/package.json b/packages/plugin-commands-env/package.json index 7e05d59a29..0b594f91a8 100644 --- a/packages/plugin-commands-env/package.json +++ b/packages/plugin-commands-env/package.json @@ -34,6 +34,7 @@ "@pnpm/config": "workspace:*", "@pnpm/error": "workspace:*", "@pnpm/fetch": "workspace:*", + "@pnpm/logger": "^4.0.0", "@pnpm/node.fetcher": "workspace:*", "@pnpm/node.resolver": "workspace:*", "@pnpm/store-path": "workspace:*", diff --git a/packages/plugin-commands-env/src/node.ts b/packages/plugin-commands-env/src/node.ts index b8ce7d6a0d..c75f912603 100644 --- a/packages/plugin-commands-env/src/node.ts +++ b/packages/plugin-commands-env/src/node.ts @@ -2,6 +2,7 @@ import fs from 'fs' import path from 'path' import { Config } from '@pnpm/config' import { createFetchFromRegistry, FetchFromRegistry } from '@pnpm/fetch' +import { globalInfo } from '@pnpm/logger' import { fetchNode } from '@pnpm/node.fetcher' import storePath from '@pnpm/store-path' import loadJsonFile from 'load-json-file' @@ -71,6 +72,7 @@ export async function getNodeDir (fetch: FetchFromRegistry, opts: NvmNodeCommand pnpmHomeDir: opts.pnpmHomeDir, }) const cafsDir = path.join(storeDir, 'files') + globalInfo(`Fetching Node.js ${opts.useNodeVersion} ...`) await fetchNode(fetch, opts.useNodeVersion, versionDir, { ...opts, cafsDir, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8aefec457..cb32a3303e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3060,6 +3060,9 @@ importers: '@pnpm/fetch': specifier: workspace:* version: link:../fetch + '@pnpm/logger': + specifier: ^4.0.0 + version: 4.0.0 '@pnpm/node.fetcher': specifier: workspace:* version: link:../node.fetcher