You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When installing and and using the @medusajs/js-sdk and write the code to setup a client, it throws an ERR_UNSUPPORTED_DIR_IMPORT error similar to the following:
node:internal/modules/esm/resolve:251
throw new ERR_UNSUPPORTED_DIR_IMPORT(path, fileURLToPath(base), String(resolved));
^
Error [ERR_UNSUPPORTED_DIR_IMPORT]: Directory import '/Users/username/storefront/node
_modules/.pnpm/@[email protected][email protected][email protected][email protected]_@[email protected]_/node_module
s/@medusajs/js-sdk/dist/esm/admin' is not supported resolving ES modules imported from /Users/username/storefront/node_modules/
.pnpm/@[email protected][email protected][email protected][email protected].
9_@[email protected]_/node_modules/@medusajs/js-sdk/dist/esm/index.js
at finalizeResolution (node:internal/modules/esm/resolve:251:11)
at moduleResolve (node:internal/modules/esm/resolve:914:10)
at defaultResolve (node:internal/modules/esm/resolve:1038:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:557:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:525:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:246:38)
at ModuleJob._link (node:internal/modules/esm/module_job:126:49) {
code: 'ERR_UNSUPPORTED_DIR_IMPORT',
url: 'file:///Users/username/storefront/node_modules/.pnpm/@[email protected][email protected][email protected][email protected]_@[email protected]_/node_modules/@medusajs/js-sdk/dist/esm/admin'
}
Node.js v22.9.0
I got the same error using the following package managers:
For the time being, I setup a temporary fix using the following script to rewrite all the imports and exports to be explicit in defining the file name:
constfs=require("fs");constpath=require("path");functionfixImports(dir){constfiles=fs.readdirSync(dir);files.forEach((file)=>{constfilePath=path.join(dir,file);conststat=fs.statSync(filePath);if(stat.isDirectory()){fixImports(filePath);}elseif(file.endsWith(".js")){letcontent=fs.readFileSync(filePath,"utf8");// Fix importscontent=content.replace(/from\s+['"](\.[^'"]+)['"]/g,(match,importPath)=>{constfullPath=path.resolve(path.dirname(filePath),importPath);letrelativePath=path.relative(path.dirname(filePath),fullPath).replace(/\\/g,"/");if(!relativePath.startsWith(".")){relativePath="./"+relativePath;}if(fs.existsSync(fullPath+".js")){return`from '${relativePath}.js'`;}elseif(fs.existsSync(path.join(fullPath,"index.js"))){return`from '${relativePath}/index.js'`;}returnmatch;},);// Fix exportscontent=content.replace(/export\s+.*from\s+['"](\.[^'"]+)['"]/g,(match,exportPath)=>{constfullPath=path.resolve(path.dirname(filePath),exportPath);letrelativePath=path.relative(path.dirname(filePath),fullPath).replace(/\\/g,"/");if(!relativePath.startsWith(".")){relativePath="./"+relativePath;}if(fs.existsSync(fullPath+".js")){returnmatch.replace(exportPath,relativePath+".js");}elseif(fs.existsSync(path.join(fullPath,"index.js"))){returnmatch.replace(exportPath,relativePath+"/index.js");}returnmatch;},);fs.writeFileSync(filePath,content);}});}constesmDir=path.join(__dirname,"..","node_modules","@medusajs","js-sdk","dist","esm",);fixImports(esmDir);console.log("Fixed ESM imports and exports for @medusajs/js-sdk");
Bug report
Describe the bug
When installing and and using the
@medusajs/js-sdk
and write the code to setup a client, it throws anERR_UNSUPPORTED_DIR_IMPORT
error similar to the following:I got the same error using the following package managers:
System information
Medusa version (including plugins): Only
@medusajs/js-sdk
rc-4Node.js version: 22.9.0
Database: Postgres 16
Operating system: macOS 15
Browser (if relevant): Arc (chromium)
Steps to reproduce the behavior
"type": "module",
to yourpackage.json
@medusajs/js-sdk
package with version "rc"Expected behavior
The error simply should not appear, and the client should import successfully.
Screenshots
If applicable, add screenshots to help explain your problem
Code snippets
I tested this error without a framework on an empty npm project, with this code inside
run.js
:Then I ran
node run.js
to replicate the error.This is what the
package.json
looks like for this empty project:Additional context
My guess is that this has to do with the bundling/transpiling of the typescript to javascript in the js-sdk package.
The text was updated successfully, but these errors were encountered: