diff --git a/.changeset/hot-birds-cover.md b/.changeset/hot-birds-cover.md new file mode 100644 index 0000000000..fa3b910715 --- /dev/null +++ b/.changeset/hot-birds-cover.md @@ -0,0 +1,5 @@ +--- +"hardhat": patch +--- + +Use `npm_config_user_agent` to determine what package manager to use for project creation diff --git a/packages/hardhat-core/src/internal/cli/project-creation.ts b/packages/hardhat-core/src/internal/cli/project-creation.ts index 4cf3c880d1..0c0bc976cb 100644 --- a/packages/hardhat-core/src/internal/cli/project-creation.ts +++ b/packages/hardhat-core/src/internal/cli/project-creation.ts @@ -554,12 +554,24 @@ function isInstalled(dep: string) { return dep in allDependencies; } +function getProjectTypeFromUserAgent() { + const userAgent = process.env.npm_config_user_agent; + // Get first part of user agent string + const [projectType] = userAgent?.split("/") ?? []; + return projectType; +} + async function isYarnProject() { - return fsExtra.pathExists("yarn.lock"); + return ( + getProjectTypeFromUserAgent() === "yarn" || fsExtra.pathExists("yarn.lock") + ); } async function isPnpmProject() { - return fsExtra.pathExists("pnpm-lock.yaml"); + return ( + getProjectTypeFromUserAgent() === "pnpm" || + fsExtra.pathExists("pnpm-lock.yaml") + ); } async function getProjectPackageManager(): Promise {