javascript - ES6模块: why a previously exported module is not known by "child" modules?

标签 javascript node.js ecmascript-6

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

我有一个 client/main.js 正在导入 imports/module1/index.js

导入组件后,imports/module1/index.js导入一个imports/module1/api/api.jsimports/module1/component/组件1.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
  },
}

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

最佳答案

目前,您没有在 component1.js 文件中导入 api.js,因此 component1 无法访问 api 中定义的任何函数。

文件的范围不会“泄漏”,因此每个文件在这方面都是完全独立的。 main.js 文件中的 import 不会自动使所有导入的模块可用于其子模块 - 这是没有意义的。您必须导入某些内容才能使用它。

关于javascript - ES6模块: why a previously exported module is not known by "child" modules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178905/

相关文章:

html - 无法将 id 从变量 Jade 放入 div

mysql - 如何从表单的数据条目填充mysql数据库?

javascript - 当用户停止在 ReactJS 中输入时显示警报

javascript - 两张照片放在一起。在悬停时显示一个。可以用 css 还是只用 javascript?

javascript - 无法获取 jQuery AJAX 响应 header

javascript - 如何使隐藏(ng-cloaked)元素保留其可见时占用的空间

javascript - 如何连续运行 mocha 集成测试?

javascript - 如果 Internet Explorer 将打印页面大小调整为 60%

node.js - Node Express 模块抛出 'has no method urlencoded' 错误

javascript - Nodejs 中模块函数/类的实例