Skip to content

Don't warn about mismatched versions when using multiple patches for the same library #541

@elliottkember

Description

@elliottkember

I just found out about #43 which will make our patches really easy to work with by separating patches from each other. What a great feature!

Unfortunately we have enabled --error-on-warn to ensure we keep our patches up to date, and so the warnings we get from multi-patch names causes our builds to break.

I've patched patch-package with patch-package locally to skip + version patches, to work around this and avoid the warning. I'm sure there are some gotchas with the .includes('+') syntax I've used here (NPM versions that include the + character?) but I thought I should submit this as an issue to see whether it could be applied.

Here is the diff that solved my problem:

diff --git a/node_modules/patch-package/dist/applyPatches.js b/node_modules/patch-package/dist/applyPatches.js index c0217cf..90f3eda 100644 --- a/node_modules/patch-package/dist/applyPatches.js +++ b/node_modules/patch-package/dist/applyPatches.js @@ -92,13 +92,19 @@ function applyPatchesForApp({ appPath, reverse, patchDir, shouldExitWithError, s // yay patch was applied successfully // print warning if version mismatch if (installedPackageVersion !== version) { - warnings.push(createVersionMismatchWarning({ - packageName: name, - actualVersion: installedPackageVersion, - originalVersion: version, - pathSpecifier, - path, - })); + // Ignore multi-patch versions + if (version.includes('+') && version.split('+')[0] === installedPackageVersion) { + console.log("Ignoring multi-patch version mismatch for", pathSpecifier); + } else { + warnings.push(createVersionMismatchWarning({ + packageName: name, + actualVersion: installedPackageVersion, + originalVersion: version, + pathSpecifier, + path, + })); +  + } } console.log(`${chalk_1.default.bold(pathSpecifier)}@${version} ${chalk_1.default.green("✔")}`); }

This issue body was partially generated by patch-package ❤️

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions