3.2.0 • Published 6 years ago

batch-import v3.2.0

Weekly downloads
7
License
ISC
Repository
github
Last release
6 years ago

batch-import

批量加载指定目录下node.js模块,并将模块导出结果保存到与模块路径结构一致的对象中

install

  npm install batch-import

使用方法

let batchImport = require('batch-import')

let modules = batchImport(options, container)

batchImport(options, container)

  • options Object

    • path String - 模块所在相对路径(必填)

    • contain Array - 加载指定模块或目录,支持深度递归匹配,与exclude互斥(可选)

    • exclude Array - 排除指定模块或目录,支持深度递归匹配,与contain互斥(可选)

    • import(filename, data) Function - 模块导出数据处理函数,this指向当前层级容器。用于数据检验、预处理等操作(可选)

      • filename String - 当前文件名称,不含后缀

      • data * - 模块导出数据

    • complete(data) Function - 同一个配置项下的所有模块导出完成后的数据处理函数,this指向根容器。用于数据检验、预处理等操作(可选)

      • data Object - 所有子集模块导出数据集合
  • container Object - 可选,将模块导出结果保存到指定容器中

示例

let batchImport = require('batch-import')

let modules = batchImport({
   "middleware": {
      "path": "middleware/",
      "exclude": ["test.js"],
      import(filename, data) {
         if (data instanceof Function) {
            return data(this)
         } else {
            throw new Error(`${filename}模块导出必须为函数类型`)
         }
      },
      complete(data) {
         for (let name in data) {
            this[name] = data[name]
         }
         return data
      }
   },
   "models": {
      "path": "models/",
      import(filename, data) {
         if (data instanceof Function) {
            return data(this)
         } else {
            throw new Error(`${filename}模块导出必须为函数类型`)
         }
      },
   },
   "controllers": {
      "path": "controllers/",
      "contain": ["_route.js"],
   },
})

注意事项

  • 配置项加载顺序与定义顺序一致,配置越靠前优先级越高

  • path路径以入口文件所在位置作为根路径

  • path路径中不应该出现./、../等相对路径表达式

3.2.0

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.0

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.2.7

6 years ago

1.2.6

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.0

6 years ago

1.1.6

6 years ago

1.1.5

6 years ago

1.1.4

6 years ago

1.1.3

6 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.0

6 years ago