Импорт модулей JavaScript - PullRequest
0 голосов
/ 23 мая 2018

Я написал модуль Javascript под названием module.js, который выполняет следующие действия:

export default function myModule() {
    return new Promise((resolve) => {
        // do a bunch of stuff
    });
};

У меня есть следующий код Javascript test.js, который использует myModule () в module.js

import {myModule} from "module";
myModule().then((retVal) => {
    console.log(retVal);
});

К сожалению, моя консоль браузера сообщает мне, что у меня следующая синтаксическая ошибка:

Uncaught SyntaxError: Unexpected identifier

Консоль сообщает об ошибке синтаксиса в строке 1 test.js, но я не вижу, что не так сЭто.Любое понимание очень ценится.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

При экспорте с default вы не используете скобки `.Попробуйте вместо этого:

import myModule from "module"

См. Здесь: Когда мне следует использовать фигурные скобки для импорта ES6?

Редактировать

Как уже упоминалось, если вы импортируете это из файла в вашем проекте, а не из узла, то вам нужно будет указать путь к файлу, из которого вы экспортируете.Я протестировал приведенный ниже код в своем проекте и получил ожидаемый результат test resolve в консоли.Дайте мне знать, если это все еще не работает для вас.

module.js

export default function myModule() {
    return new Promise((resolve) => {
        // do a bunch of stuff
        resolve('test resolve');
    });
};

index.js

import myModule from "./module"; // Notice there are no braces (as we are exporting default) and that we are specifying the path
myModule().then((retVal) => {
    console.log(retVal);
});

Указание пути

./ будет искать в текущем каталоге импортируемого файла.

../ будет искать каталогна один уровень выше от файла, который вы импортируете с

../../, будет искать каталог на два уровня выше от файла, который вы импортируете с

0 голосов
/ 23 мая 2018

Поскольку вы импортируете только одну функцию, вы должны удалить {} из импорта.Кроме того, вы должны изменить с, на «синтаксис пути».Вы должны в конечном итоге это:

import myModule from "./module";
...