Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"errorMessage": "require is not defined in ES module scope, you can use import instead" When using Node.js 18.x

When I use the aws-sdk module Node.js 18.x:

const aws = require("aws-sdk");

exports.handler = async (event) => {
    console.log('Hello!');
    // some code
};

I got this error:

{
  "errorType": "ReferenceError",
  "errorMessage": "require is not defined in ES module scope, you can use import instead",
  "trace": [
    "ReferenceError: require is not defined in ES module scope, you can use import instead",
    "    at file:///var/task/index.mjs:1:13",
    "    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)",
    "    at async Promise.all (index 0)",
    "    at async ESMLoader.import (node:internal/modules/esm/loader:530:24)",
    "    at async _tryAwaitImport (file:///var/runtime/index.mjs:921:16)",
    "    at async _tryRequire (file:///var/runtime/index.mjs:970:86)",
    "    at async _loadUserApp (file:///var/runtime/index.mjs:994:16)",
    "    at async UserFunction.js.module.exports.load (file:///var/runtime/index.mjs:1035:21)",
    "    at async start (file:///var/runtime/index.mjs:1200:23)",
    "    at async file:///var/runtime/index.mjs:1206:1"
  ]
}

The same code works fine with late versions for example Node.js 16.x.

What is the reason of this error, and how can we avoid it.

like image 383
YCF_L Avatar asked Nov 20 '25 00:11

YCF_L


1 Answers

enter image description here

Just change the .mjs extension of index.mjs to index.js

like image 103
Manookian Avatar answered Nov 22 '25 15:11

Manookian



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!