2018-01-10 Node加载一组相关的模块机制

Node可以将目录作为模块,可以把相关模块按相关逻辑组合起来

问题

你希望将一个目录下的相关文件组合起来,而且只需要通过一个require来加载这些模块。

解决方案

创建一个叫做index.js的文件来加载各个模块并把它们一起导出

讨论

通常一个模块是逻辑自包含的,但将它拆成几个文件还是很有意义的。大多数你在npm上找到的模块是以这种方式编写的。Node的模块系统可以将文件目录作为模块。最容易的是创建一个叫index.js文件,这个文件通过require来加载各个文件。下面的例子展示了这是如何做到的。

// group/index.js 这个模块将当前目录下各个文件组合起来一起导出
module.exports = {
  one:require('./one'),
  two:require('./two')
}
// group/one.js和group/two.js 可以导出方法或者变量
module.exports = function(){
  console.log('one');
}
// test.js 加载一组模块 通过require语句来一次性加载所有的模块
var group = require('./group');
group.one();
group.two();

项目中很常见。比如vue-cli项目的vuex(用的是es6的语法export和import,上面用的是CommandJS)

store目录下存在index.js文件
22.png
index.js文件导入相关逻辑js文件
11.png
加载一组模块
55.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。