fix: pnpmHomeDir should read PNPM_HOME defined in environment variables (#5566)

This commit is contained in:
chlorine
2022-10-29 18:23:19 +08:00
committed by GitHub
parent e9cad19391
commit a14ad09e6b
3 changed files with 27 additions and 1 deletions

View File

@@ -0,0 +1,6 @@
---
"@pnpm/config": patch
"pnpm": patch
---
It should be possible to set a custom home directory for pnpm by changing the PNPM_HOME environment variable.

View File

@@ -297,7 +297,7 @@ export async function getConfig (
}
return undefined
})()
pnpmConfig.pnpmHomeDir = getDataDir(process)
pnpmConfig.pnpmHomeDir = process.env.PNPM_HOME ?? getDataDir(process)
if (cliOptions['global']) {
let globalDirRoot

View File

@@ -971,3 +971,23 @@ test('do not return a warning if a package.json has workspaces field and there i
})
expect(warnings).toStrictEqual([])
})
test('read PNPM_HOME defined in environment variables', async () => {
const oldEnv = process.env
const homeDir = './specified-dir'
process.env = {
...oldEnv,
PNPM_HOME: homeDir,
}
const { config } = await getConfig({
cliOptions: {},
packageManager: {
name: 'pnpm',
version: '1.0.0',
},
})
expect(config.pnpmHomeDir).toBe(homeDir)
process.env = oldEnv
})