Home > database >  I get "SyntaxError:Cannot use import statement outside a module", after adding {"type
I get "SyntaxError:Cannot use import statement outside a module", after adding {"type

Time:04-09

I'm trying to import another .js file in my main server file "App.js", but I keep getting the syntax error:

SyntaxError:Cannot use import statement outside a module

I did include the "type": "module" in my package.json file.

You can see the line where I'm trying to import the file here;

import {Read as readSensor} from './Sensor.js';

The function that I'm trying to import looks like this:

export async function Read() {
    const res = await fetch(SensorUrl);
    if(res.ok){
        return await res.json();
    }
    else{
        throw new Error('Bad Reading');
    }
}

AFAIK, the syntax of my import/exports is correct, so I really cannot figure out what I'm doing wrong.

CodePudding user response:

If you are using node js v14 or above, try these:

add "type": "module" in your package.json use --experimental-modules when launching your app, eg: node --experimental-modules index.js

Or you can try this also:

add "type": "module" in your package.json and rename your file with a .mjs extension, the file will look like something Sensor.mjs.

Feel free to add a comment if you face any issue, also pls add your package.json file with node version for better debugging.

Have a look at this link, it might help you.

CodePudding user response:

So, I figured it out, and it turns out I'm dumb. I was trying to run this with an outdated version of node.js (12.14.1). It worked as soon as I updated to version 16.14.2. So today I have learned the very valuable lesson of keeping my stuff updated. Thank you for the answers!

  • Related