mirror of
https://github.com/pnpm/pnpm.git
synced 2025-12-24 07:38:12 -05:00
6
.changeset/ten-chefs-shave.md
Normal file
6
.changeset/ten-chefs-shave.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@pnpm/config": minor
|
||||
"pnpm": minor
|
||||
---
|
||||
|
||||
Substitute environment variables in config keys [#6679](https://github.com/pnpm/pnpm/issues/6679).
|
||||
@@ -20,7 +20,7 @@ export async function readLocalConfig (prefix: string): Promise<LocalConfig> {
|
||||
for (const [key, val] of Object.entries(config)) {
|
||||
if (typeof val === 'string') {
|
||||
try {
|
||||
config[key] = envReplace(val, process.env)
|
||||
config[envReplace(key, process.env)] = envReplace(val, process.env)
|
||||
} catch (err) {
|
||||
// ignore
|
||||
}
|
||||
|
||||
1
config/config/test/fixtures/has-env-in-key/.npmrc
vendored
Normal file
1
config/config/test/fixtures/has-env-in-key/.npmrc
vendored
Normal file
@@ -0,0 +1 @@
|
||||
${FOO}=999
|
||||
@@ -21,6 +21,7 @@ delete process.env.npm_config_virtual_store_dir
|
||||
delete process.env.npm_config_shared_workspace_lockfile
|
||||
delete process.env.npm_config_side_effects_cache
|
||||
delete process.env.npm_config_node_version
|
||||
delete process.env.npm_config_fetch_retries
|
||||
|
||||
const env = {
|
||||
PNPM_HOME: __dirname,
|
||||
@@ -987,3 +988,24 @@ test('read PNPM_HOME defined in environment variables', async () => {
|
||||
|
||||
process.env = oldEnv
|
||||
})
|
||||
|
||||
test('xxx', async () => {
|
||||
const oldEnv = process.env
|
||||
process.env = {
|
||||
...oldEnv,
|
||||
FOO: 'fetch-retries',
|
||||
}
|
||||
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {
|
||||
dir: f.find('has-env-in-key'),
|
||||
},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
expect(config.fetchRetries).toBe(999)
|
||||
|
||||
process.env = oldEnv
|
||||
})
|
||||
|
||||
16
pnpm-lock.yaml
generated
16
pnpm-lock.yaml
generated
@@ -40,8 +40,8 @@ catalogs:
|
||||
specifier: ^0.2.1
|
||||
version: 0.2.1
|
||||
'@pnpm/npm-conf':
|
||||
specifier: 2.2.2
|
||||
version: 2.2.2
|
||||
specifier: 2.3.0
|
||||
version: 2.3.0
|
||||
'@pnpm/npm-lifecycle':
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
@@ -1295,7 +1295,7 @@ importers:
|
||||
version: link:../matcher
|
||||
'@pnpm/npm-conf':
|
||||
specifier: 'catalog:'
|
||||
version: 2.2.2
|
||||
version: 2.3.0
|
||||
'@pnpm/pnpmfile':
|
||||
specifier: workspace:*
|
||||
version: link:../../hooks/pnpmfile
|
||||
@@ -8492,6 +8492,10 @@ packages:
|
||||
resolution: {integrity: sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@pnpm/npm-conf@2.3.0':
|
||||
resolution: {integrity: sha512-DqrO+oXGR7HCuicNy6quk6ALJSDDPKI7RZz1bP5im8mSL8J2e+9w26LdkjuAfpAjOutYUJVbnXnx4IbTQeIgfw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
'@pnpm/npm-lifecycle@3.0.4':
|
||||
resolution: {integrity: sha512-fTzGiezzHeFHmmCZH6pXnii32nv4iNc7ox1DpdA9B00BTakcji33ugVGV2rE4ze6lU6IPOGuJa0NiQHnkuwUUQ==}
|
||||
engines: {node: '>=18.12'}
|
||||
@@ -15271,6 +15275,12 @@ snapshots:
|
||||
'@pnpm/network.ca-file': 1.0.2
|
||||
config-chain: 1.1.13
|
||||
|
||||
'@pnpm/npm-conf@2.3.0':
|
||||
dependencies:
|
||||
'@pnpm/config.env-replace': 1.1.0
|
||||
'@pnpm/network.ca-file': 1.0.2
|
||||
config-chain: 1.1.13
|
||||
|
||||
'@pnpm/npm-lifecycle@3.0.4(typanion@3.14.0)':
|
||||
dependencies:
|
||||
'@pnpm/byline': 1.0.0
|
||||
|
||||
@@ -46,7 +46,7 @@ catalog:
|
||||
"@pnpm/logger": ^5.0.0
|
||||
"@pnpm/network.agent": ^2.0.0
|
||||
"@pnpm/nopt": ^0.2.1
|
||||
"@pnpm/npm-conf": 2.2.2
|
||||
"@pnpm/npm-conf": 2.3.0
|
||||
"@pnpm/npm-lifecycle": ^3.0.4
|
||||
"@pnpm/npm-package-arg": ^1.0.0
|
||||
"@pnpm/os.env.path-extender": ^2.0.0
|
||||
|
||||
Reference in New Issue
Block a user