导入javascript模块

时间:2018-05-23 19:06:09

标签: javascript es6-modules

我写了一个名为module.js的Javascript模块,它执行以下操作

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

我有以下Javascript代码test.js,它在module.js中使用myModule()

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

不幸的是,我的浏览器控制台告诉我我有以下语法错误:

Uncaught SyntaxError: Unexpected identifier

控制台说test.js第1行的语法错误,但我看不出它有什么问题。任何见解都非常感谢。

2 个答案:

答案 0 :(得分:2)

由于您只导入单个函数,因此应从导入中删除{}。此外,您应该从“路径语法”更改为“路径语法”。 你应该最终得到这个:

import myModule from "./module";

答案 1 :(得分:0)

使用default导出时,不要使用大括号`。试试这个:

import myModule from "module"

见这里:When should I use curly braces for ES6 import?

修改

如上所述,如果要从项目中的文件而不是节点模块导入它,那么您将指定要从中导出的文件的路径。我在我的项目中测试了以下代码,并在控制台中收到了预期的结果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);
});

指定路径

./将搜索您要导入的文件的当前目录。

../将从您导入的文件中向上一级搜索目录

../../将从您导入的文件

中的两个级别搜索目录