ES6模块:为什么先前导出的模块不被" child"模块?

时间:2016-03-23 12:59:55

标签: javascript node.js ecmascript-6

我正在尝试为我的Meteor / Node应用程序整合基于模块的架构。

我有client/main.js导入imports/module1/index.js

imports/module1/index.js在导入组件imports/module1/api/api.js后导入imports/module1/component/component1.js

总结一下,简化的树看起来像这样

.client/main.js
 |_imports/module1/index.js
     |_imports/module1/api/api.js
     |_imports/module1/component/component1.js

api.js文件看起来像这样:

export default {
  myFunction1 (arg1, arg2) {
    // function stuff
  },
  myFunction2 (arg1, arg2) {
    // function stuff
  },
}

我希望能够在myFunction1(ar1,arg2)内拨打imports/module1/component/component1.js,但它不起作用。我错过了什么?

1 个答案:

答案 0 :(得分:1)

目前,您未在api.js文件中导入component1.js,因此component1无法访问API中定义的任何功能。

文件的范围没有""泄漏"所以每个文件在这个问题上完全是分开的。 import文件中的main.js并未自动将所有导入的模块提供给其子模块 - 这是没有意义的。你必须导入一些东西才能使用它。