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';
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?
https://pastebin.com/QTsYgRAK
Try simply adding the following to your
package.json
:"type": "module"
I tested this with
import * as Mastodon from 'tsl-mastodon-api';
in atest.js
file using the example from their readme, executing withts-node test.js
(NOTE THAT THIS IS A JS FILE! Not a .ts file) and it works. It times out, of course, because the example URL doesn't exist, but you get the idea. Minimal example (package.json
is default fromnpm init -y
but with the"type": "module"
added. I also tested with your package.json [adding type:module] and tsconfig.json):test.js
:Full
package.json
that you provided with the "type" property added :On the note that I used
test.js
- if this was insteadtest.ts
and you tried to execute it directly with ts-node likets-node test.ts
it will throw the errorTypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for test.ts
. So, I made the assumption that your file is a JS based solely on that fact.If you still have problems, post a super simplified script like my
test.js
above that causes the issue for you and I'll test with yours. You can exclude all private code - just enough to trigger the module error... meaning you could probably just have theimport
andconsole.log('hi');
and that would be sufficient.so attempting this causes all typescript stuff to break, sadly some of my code depends on typescript specific things.
I am using TS for pretty much the entire project, but I know TS and JS are pretty much the same with a few added rules.
just posted it here, the code is currently not public but I posted the ts-config and package.json
At one point I did have if set to commonJS too, but it seemed to cause issues. Sending the one the is updated as a suggestion