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)