Как импортировать модуль JS без указания расширения?
В чистой Node.js при использование ESM нужно обязательно указывать расширение в связи с следованием спецификации. Если хочется использовать ESM, но не зависеть от чистой Node.js, нужно использовать один из нескольких вариантов:

TypeScript
Babel
Webpack
Rollup
esm module

Прочитать документацию. В вебпаке она очень хорошая.
https://webpack.js.org/configuration/resolve/#reso...