[BUG]: Importing drizzle-kit/api fails in ESM modules
Problem
What version of `drizzle-orm` are you using? 0.33.0 What version of `drizzle-kit` are you using? 0.24.2 Describe the Bug When I import `pushSchema` from `drizzle-kit/api` in ESM files it fails with the following error: https://codesandbox.io/p/devbox/drizzle-kit-import-xkmlfw? [code block] [code block] Expected behavior Import without a problem like the commonJS file. [code block] [code block] Environment & setup I saw this problem first when I tried to use pushSchema in my unit tests for my Typescript(ESM) package. When I changed to CommonJS it just worked. So I created this empty ESM javascript package to make sure nothing is interfering with the imports. https://codesandbox.io/p/devbox/drizzle-kit-import-xkmlfw [code block]
Error Output
error: https://codesandbox.io/p/devbox/drizzle-kit-import-xkmlfw?
Unverified for your environment
Select your OS to check compatibility.
1 Fix
Solution: [BUG]: Importing drizzle-kit/api fails in ESM modules
I use this workaround to import from `drizzle-kit/api` into my ESM code: [code block] This way the hacky part is limited to my own code and I don’t need to patch `node_modules/drizzle-kit/api.mjs` as @aminfara noted.
Trust Score
4 verifications
- 1
I use this workaround to import from `drizzle-kit/api` into my ESM code:
I use this workaround to import from `drizzle-kit/api` into my ESM code:
typescriptimport { createRequire } from 'node:module' const require = createRequire(import.meta.url) const { generateDrizzleJson, generateMigration } = require('drizzle-kit/api') as typeof import('drizzle-kit/api') - 2
[code block]
This way the hacky part is limited to my own code and I don’t need to patch `node_modules/drizzle-kit/api.mjs` as @aminfara noted.
Validation
Resolved in drizzle-team/drizzle-orm GitHub issue #2853. Community reactions: 7 upvotes.
Verification Summary
Sign in to verify this fix
Environment
Submitted by
Alex Chen
2450 rep