I am writing this nodeJS project, and I wanted to include the typescript mastodon library but it keeps telling me this. I am kinda unsure how to proceed.
I am writing this nodeJS project, and I wanted to include the typescript mastodon library but it keeps telling me this. I am kinda unsure how to proceed.
Error [ERR_REQUIRE_ESM]: require() of ES Module /home/sky/Documents/hourlypets/node_modules/tsl-mastodon-api/lib/index.js from /home/sky/Documents/hourlypets/src/mastodon.ts not supported. Instead change the require of index.js in /home/sky/Documents/hourlypets/src/mastodon.ts to a dynamic import() which is available in all CommonJS modules. at require.extensions. [as .js] (/usr/lib/node_modules/ts-node/dist/index.js:851:20) at Object. (/home/sky/Documents/hourlypets/src/mastodon.ts:36:31) at m._compile (/usr/lib/node_modules/ts-node/dist/index.js:857:29) at require.extensions. [as .ts] (/usr/lib/node_modules/ts-node/dist/index.js:859:16) at Object. (/home/sky/Documents/hourlypets/src/bot.ts:13:20) at m._compile (/usr/lib/node_modules/ts-node/dist/index.js:857:29) at require.extensions. [as .ts] (/usr/lib/node_modules/ts-node/dist/index.js:859:16) at phase4 (/usr/lib/node_modules/ts-node/dist/bin.js:466:20) at bootstrap (/usr/lib/node_modules/ts-node/dist/bin.js:54:12) at main (/usr/lib/node_modules/ts-node/dist/bin.js:33:12) at Object. (/usr/lib/node_modules/ts-node/dist/bin.js:579:5) { code: 'ERR_REQUIRE_ESM' } I am importing the lib like this
import * as Mastodon from 'tsl-mastodon-api';
This is usually a side effect of the uneven adoption of ESM vs CommonJS and mixing of the two. It's a bit annoying, but, usually fairly easy to work around. But, a lot of it depends on how your project is configured - both the package.json and tsconfig.
Do you have the code available somewhere? I'm mostly interested in the
package.json(specifically thetypeproperty) andtsconfigif you have one (and this is Typescript). Also, is this a Typescript project or a regular Javascript project?Sorry, there's several variables here that affect the proper solution.
EDIT : One more question. If this is a Typescript project, how are you executing it? Transpile then run with node? ts-node? ts-node-esm?
EDIT x2 : If you'll throw the project, or a simplified example that demonstrates the problem, up on github or somewhere else publicly accessible we should be able to fix you up pretty quickly. You can exclude the
node_modules/folder.__{ "name": "hourlypets", "version": "1.0.0", "description": "A bot for displaying hourly pets", "main": "dist/index.js", "scripts": { "start": "node dist/index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@types/node": "^20.5.1", "typescript": "^5.1.6" }, "dependencies": { "@petfinder/petfinder-js": "^1.0.6", "dotenv": "^16.3.1", "tsl-mastodon-api": "^0.4.0" } } _{ "compilerOptions": { "module": "es6", "esModuleInterop": true, "target": "es6", "moduleResolution": "node", "sourceMap": true, "outDir": "dist" }, "lib": ["es2015"] }I am using ts-node
Hehe, this is the same type of answer I get from clients when I ask more than one question at a time 😆
Do you have answers to the other questions? Or, much better, can you post the code including your package.json and tsconfig to github/etc?