Skip to content

Typescript ESM import error #326

@matrm

Description

@matrm

Error message:

node_modules/lmdb/index.d.ts:470:1 - error TS1203: Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.

470 export = lmdb

The error message goes away and it is possible to compile without errors when manually changing the last line of index.d.ts from
export = lmdb
to
export default lmdb

testing code:

import lmdb from 'lmdb';

let myDB = lmdb.open({
	path: 'my-db'
});
await myDB.put('greeting', { someText: 'Hello, World!' });
myDB.get('greeting').someText // 'Hello, World!'
// or
myDB.transaction(() => {
	myDB.put('greeting', { someText: 'Hello, World!' });
	myDB.get('greeting').someText // 'Hello, World!'
});

tsconfig.json:

{
	"compilerOptions": {
		"moduleResolution": "NodeNext",
		"target": "ESNext",
		"module": "NodeNext",
		"outDir": "./dist"
	},
	"include": [
		"src/**/*"
	],
	"exclude": [
		"./node_modules"
	]
}

package.json:

{
  "name": "test",
  "version": "1.0.0",
  "description": "test",
  "type": "module",
  "scripts": {
    "build": "tsc",
    "start": "npm run build && node dist/index.js"
  },
  "dependencies": {
    "@types/node": "^22.13.1",
    "lmdb": "^3.2.5"
  },
  "devDependencies": {
    "typescript": "^5.7.3"
  }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions