diff --git a/.changeset/large-turtles-stare.md b/.changeset/large-turtles-stare.md new file mode 100644 index 0000000000..40f5a48dd4 --- /dev/null +++ b/.changeset/large-turtles-stare.md @@ -0,0 +1,6 @@ +--- +"@pnpm/lockfile-file": patch +"pnpm": patch +--- + +Fix lockfile v6. diff --git a/lockfile/lockfile-file/src/write.ts b/lockfile/lockfile-file/src/write.ts index 6987356dd4..9b1e145e1f 100644 --- a/lockfile/lockfile-file/src/write.ts +++ b/lockfile/lockfile-file/src/write.ts @@ -71,13 +71,14 @@ async function writeLockfile ( return rimraf(lockfilePath) } - const lockfileToStringify = (Boolean(opts?.useInlineSpecifiersFormat) || wantedLockfile['lockfileVersion'].toString().startsWith('6.')) + const isLockfileV6 = wantedLockfile['lockfileVersion'].toString().startsWith('6.') + const lockfileToStringify = (Boolean(opts?.useInlineSpecifiersFormat) || isLockfileV6) ? convertToInlineSpecifiersFormat(wantedLockfile) as unknown as Lockfile : wantedLockfile const yamlDoc = yamlStringify(lockfileToStringify, { forceSharedFormat: opts?.forceSharedFormat === true, - includeEmptySpecifiersField: !opts?.useInlineSpecifiersFormat, + includeEmptySpecifiersField: !opts?.useInlineSpecifiersFormat && !isLockfileV6, }) return writeFileAtomic(lockfilePath, yamlDoc) @@ -247,12 +248,13 @@ export async function writeLockfiles ( } const forceSharedFormat = opts?.forceSharedFormat === true - const wantedLockfileToStringify = (Boolean(opts.useInlineSpecifiersFormat) || opts.wantedLockfile.lockfileVersion.toString().startsWith('6.')) + const isLockfileV6 = opts.wantedLockfile.lockfileVersion.toString().startsWith('6.') + const wantedLockfileToStringify = (Boolean(opts.useInlineSpecifiersFormat) || isLockfileV6) ? convertToInlineSpecifiersFormat(opts.wantedLockfile) as unknown as Lockfile : opts.wantedLockfile const normalizeOpts = { forceSharedFormat, - includeEmptySpecifiersField: !opts.useInlineSpecifiersFormat, + includeEmptySpecifiersField: !opts.useInlineSpecifiersFormat && !isLockfileV6, } const yamlDoc = yamlStringify(wantedLockfileToStringify, normalizeOpts)