mirror of
https://github.com/pnpm/pnpm.git
synced 2025-12-24 07:38:12 -05:00
fix: side effects cache should work in a workspace
This commit is contained in:
5
.changeset/curly-goats-itch.md
Normal file
5
.changeset/curly-goats-itch.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/config": minor
|
||||
---
|
||||
|
||||
Set `side-effects-cache-read` and `side-effects-cache-write`.
|
||||
5
.changeset/ninety-jars-return.md
Normal file
5
.changeset/ninety-jars-return.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"pnpm": patch
|
||||
---
|
||||
|
||||
Side effects cache should work in a workspace.
|
||||
1
.npmrc
1
.npmrc
@@ -7,5 +7,6 @@ shared-workspace-lockfile = true
|
||||
use-beta-cli = true
|
||||
publish-branch = main
|
||||
pnpmfile = .pnpmfile.cjs
|
||||
side-effects-cache = true
|
||||
strict-peer-dependencies = true
|
||||
extend-node-path = false
|
||||
|
||||
@@ -65,8 +65,10 @@ export interface Config {
|
||||
version: string
|
||||
}
|
||||
preferOffline?: boolean
|
||||
sideEffectsCache?: boolean
|
||||
sideEffectsCacheReadonly?: boolean
|
||||
sideEffectsCache?: boolean // for backward compatibility
|
||||
sideEffectsCacheReadonly?: boolean // for backward compatibility
|
||||
sideEffectsCacheRead?: boolean
|
||||
sideEffectsCacheWrite?: boolean
|
||||
shamefullyHoist?: boolean
|
||||
dev?: boolean
|
||||
ignoreCurrentPrefs?: boolean
|
||||
|
||||
@@ -467,6 +467,8 @@ export default async (
|
||||
if (!pnpmConfig.userConfig) {
|
||||
pnpmConfig.userConfig = npmConfig.sources.user?.data
|
||||
}
|
||||
pnpmConfig.sideEffectsCacheRead = pnpmConfig.sideEffectsCache ?? pnpmConfig.sideEffectsCacheReadonly
|
||||
pnpmConfig.sideEffectsCacheWrite = pnpmConfig.sideEffectsCache
|
||||
|
||||
if (opts.checkUnknownSetting) {
|
||||
const settingKeys = Object.keys({
|
||||
|
||||
@@ -15,6 +15,7 @@ process.env['npm_config_hoist'] = 'true'
|
||||
delete process.env.npm_config_registry
|
||||
delete process.env.npm_config_virtual_store_dir
|
||||
delete process.env.npm_config_shared_workspace_lockfile
|
||||
delete process.env.npm_config_side_effects_cache
|
||||
|
||||
test('getConfig()', async () => {
|
||||
const { config } = await getConfig({
|
||||
@@ -758,3 +759,33 @@ test('getConfig() returns the userconfig even when overridden locally', async ()
|
||||
expect(config.registry).toEqual('https://project-local.example.test')
|
||||
expect(config.userConfig).toEqual({ registry: 'https://registry.example.test' })
|
||||
})
|
||||
|
||||
test('getConfig() sets sideEffectsCacheRead and sideEffectsCacheWrite when side-effects-cache is set', async () => {
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {
|
||||
'side-effects-cache': true,
|
||||
},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
expect(config).toBeDefined()
|
||||
expect(config.sideEffectsCacheRead).toBeTruthy()
|
||||
expect(config.sideEffectsCacheWrite).toBeTruthy()
|
||||
})
|
||||
|
||||
test('getConfig() sets sideEffectsCacheRead and sideEffectsCacheWrite when side-effects-cache-readonly is set', async () => {
|
||||
const { config } = await getConfig({
|
||||
cliOptions: {
|
||||
'side-effects-cache-readonly': true,
|
||||
},
|
||||
packageManager: {
|
||||
name: 'pnpm',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
expect(config).toBeDefined()
|
||||
expect(config.sideEffectsCacheRead).toBeTruthy()
|
||||
expect(config.sideEffectsCacheWrite).toBeFalsy()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user