Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入javascript模块_Javascript_Es6 Modules - Fatal编程技术网

导入javascript模块

导入javascript模块,javascript,es6-modules,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

我编写了一个名为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行显示语法错误,但我看不出有什么问题。任何洞察都是值得赞赏的

因为您只导入一个函数,所以应该从导入中删除
{}
。此外,还应将从、更改为“路径语法”。 您应该以以下方式结束:

import myModule from "./module";

使用
default
导出时,不使用大括号“”。请尝试以下方法:

从“模块”导入myModule

请看这里:

编辑 如前所述,如果要从项目中的文件而不是节点模块导入此文件,则需要指定导出文件的路径。我已在我的项目中测试了以下代码,并在控制台中收到了预期结果
test resolve
。如果这对你仍然不起作用,请告诉我

module.js

export default function myModule() {
    return new Promise((resolve) => {
        // do a bunch of stuff
        resolve('test resolve');
    });
};
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);
});
index.js

export default function myModule() {
    return new Promise((resolve) => {
        // do a bunch of stuff
        resolve('test resolve');
    });
};
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);
});
指定路径

/
将在导入文件的当前目录中进行搜索

。/
将从要导入的文件中搜索一级目录


。/../
将从您正在导入的文件中向上搜索两级目录

什么是“test.js”?您是否正确设置了
babel
webpack
?也许您的浏览器不知道导入现在我得到了:未捕获的语法错误:意外的标识,再次指出,错误的来源是test.jstest.js是我原始邮件中的第二个代码块,这就是我要求您更改的内容。还请注意,您需要使用MBehamm提到的路径语法,我没有包括这一点,以防直接从节点模块导入。请参阅导入路径中带有
/
的更新代码。