Open denis-fwd opened 1 month ago
Thanks a lot @denis-fwd, great issue and you're exactly right.
devDependencies
is now empty as a result.But, the way I've done it is pretty sloppy – it always runs and is not targeted about what it cleans up. I'll get this fixed in the next version.
@JamieMason no the thanks goes to you. I appreciate your work and look forward to the next release. For folks coming across this issue, I've created my own sloppy fix for this in the interim:
If I set the field like this to avoid it getting deleted:
// package.json
{
"nx": {
"targets": []
}
}
@JamieMason feel free to close this at your leisure.
Description
Greetings! I am
syncpack
newest fan. Thank you for your effort. I am coming to you as I have an issue that, after reviewing, the source appears to not be a user error.My issue is this - I would like to have a property in package.json which is empty. This is due to
nx
and the use of root-level tasks: https://nx.dev/recipes/running-tasks/root-level-scripts#setup. However, anytime I runfix-mismatches
the empty object tied tonx
property disappears.Related: https://github.com/JamieMason/syncpack/issues/117
Steps to reproduce:
nx
property inpackage.json
syncpack fix-mismatches
Suggested Solution
I believe the issue is related to this function - https://github.com/JamieMason/syncpack/blob/main/src/bin-fix-mismatches/fix-mismatches.ts#L94
I propose that the configuration consider a deny list, that suggests to syncpack "I know what I am doing" for the following operations. Something like:
I realize this interface may not be needed in its entirety to solve my issue. However I believe something like this can allow for more refined customization and implicitly allows the code paths to continue working as they do today.
Help Needed
I am hoping a fix can be made in the area identified if it is the correct code path. Happy to test out any solution!