Migrating a package from CommonJS to ESM often requires code changes due to semantic differences. Let's explore the common patterns in this chapter.