Node.js: SyntaxError: невозможно использовать оператор импорта вне модуля - PullRequest
4 голосов
/ 20 июня 2020

Я получаю эту ошибку SyntaxError: Cannot use import statement outside a module при попытке импорта из другого файла javascript. Я впервые пробую что-то подобное. Главный файл - main.js, а файл модуля - mod.js.

main. js:

import * as myModule from "mod";
myModule.func();

mod. js:

export function func(){
    console.log("Hello World");
}

Как это исправить? Спасибо

Ответы [ 3 ]

2 голосов
/ 20 июня 2020

Чтобы использовать синтаксис импорта (ESModules), вам необходимо установить в свой пакет следующее: json:

{"type": "module" }

Если вы используете версию Node до 13, вы необходимо использовать флаг --experimental-modules, когда вы запускаете программу

node --experimental-modules program.js

и добавляете {"type": "module"} в пакет. json

Надеюсь, это поможет !

0 голосов
/ 20 июня 2020

Используйте общий синтаксис js вместо синтаксиса модуля es:

module.exports.func = function (){
    console.log("Hello World");
}

и

const myMod = require("./mod")
myMod.func()

В противном случае, если вы хотите использовать модули es, вы должны сделать в качестве ответа Ахраф Геллах предлагает

0 голосов
/ 20 июня 2020

необходимо сделать: -

import * as myModule from "./mod";

вместо

import * as myModule from "mod";
...