ES6进口,出口=错误:参数无效

时间:2017-11-10 09:55:08

标签: javascript node.js ecmascript-6 babeljs

我有这个设置

file1.js:

export function foo1() { ... };

file2.js:

export function foo2() { ... }

hook.js:

 import {foo1} from './file1';
 import {foo2} from './file2';

 export {foo1, foo2};

现在,当我想从我的钩子中导入时:

app.js

import { foo1 } from '../data/hook.js';

我明白了:

Error: invalid argument

调用foo1时。 (该函数没有参数/参数)。

任何人都知道这是什么问题?

更新

直接从file1导入foo1时,我也得到invalid argument。 这是一个巴别问题吗?

我的.babelrcb(我使用test作为环境):

"env": {
  "targets": {
    "node": "4.8.4"
  },
  "test": {
    "presets": ["env"]
  },
}

更新和解决方案:

事实证明导入是正确的,对于帮助我解决这个问题的所有人来说都是问题。问题是由于函数foo1中的Promise导致导入失败:

browser.waitUntil(..); // see http://webdriver.io/api/utility/waitUntil.html

2 个答案:

答案 0 :(得分:1)

您必须在导入中添加./,在导出

中添加default

File1.js

export default function foo1()

hook.js

import {foo1} from './File1'

否则,它将在 node_modules

中搜索File1

reference

答案 1 :(得分:1)

file1和file2上缺少函数体。

file1.js:

export function foo1() {};

file2.js:

export function foo2() {};

在hook.js上,您应该导出默认值。

import {foo1} from './file1';
import {foo2} from './file2';

export default {foo1, foo2};