【发布时间】:2019-06-24 13:50:55
【问题描述】:
我无法让 export default { multiple, functions } 工作。
这是我的设置:
src/index.js:
import {foo} from './foo'
foo();
foo.js:
const foo = () => {
console.log("Hello!");
}
export default {foo};
还有我的package.json:
{
"name": "jestjs.io",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "babel-node src/index.js",
"test": "jest"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/node": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"babel-jest": "^24.8.0",
"jest": "^24.8.0",
"nodemon": "^1.19.1"
}
}
当我运行npm start 时,我收到以下错误消息:
/src/index.js:5
(0, _foo.foo)();
^
TypeError: (0 , _foo.foo) is not a function
但是,如果我 export default foo 和 import foo 没有大括号 {foo},它会执行并且我会在终端上打印 Hello!。
我做错了什么?
【问题讨论】:
-
导出模块是如何转译的?错误就在那里。
-
import {foo}将期望命名为export const foo或export function foo。默认导出需要import smth,然后使用smth.foo() -
删除
default关键字,它将起作用(使用命名导出)。
标签: javascript node.js ecmascript-6 babeljs