我正在尝试为我的 Meteor/Node 应用程序构建一个基于模块的架构。
我有一个 client/main.js
正在导入 imports/module1/index.js
。
导入组件后,imports/module1/index.js
导入一个imports/module1/api/api.js
imports/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/