modules/
|
|--- index.js
|
|--- module1.js
|
└--- module2/
|
|--- index.js
|
|--- component1.js
|
└--- component2.js
使用上述结构,我可以使用以下代码访问module1.js
;
var modules = require('./modules') // or import modules from './modules'
console.log(modules.module1)
但是我无法通过以下代码访问component1
;
var modules = require('./modules') // or import modules from './modules'
console.log(modules.module2.component1)
尝试代码时,系统会抛出Cannot read property 'component1' of undefined
错误。因此,未安装module2 \ index.js。
是否有机会使用component1
定义访问component2
和modules
?
答案 0 :(得分:0)
要实现这一目标,您必须在索引文件中执行以下操作。
模块/ index.js
module.exports = {
module1: require('./module1'),
module2: require('./module2')
}
模块/模块2 / index.js
module.exports = {
component1: require('./component1'),
component2: require('./component2')
}
答案 1 :(得分:0)
我想ES7 等待 方法可以通过以下方式解决此问题;
var modules = await require('./modules')
console.log(modules.module2.component1)
问题在于; Javascript代码异步工作。
在定义变量时,第一级不是问题。但是在第二级需要一些时间来从深度获取和加载模块。
等待加载模块然后定义组件是无稽之谈,尤其是在使用其他Javascript平台(如React-Native)或其他基于Javascript语言构建的平台时。