ES6模块:为什么先前导出的模块不被“子”模块所知?
我正在尝试为我的Meteor / Node应用程序构build一个基于模块的体系结构。
我有一个client/main.js
导入一个imports/module1/index.js
。
imports/module1/index.js
在导入组件imports/module1/component/component1.js
后,导入一个imports/module1/component/component1.js
imports/module1/api/api.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
不会自动使所有导入的模块可用于其子模块 – 这是没有道理的。 你必须导入一些东西才能使用它。