0.0.21 • Published 7 years ago

require-helper v0.0.21

Weekly downloads
23
License
MIT
Repository
github
Last release
7 years ago

引用包辅助工具

方便引用库 可以按目录引用

安装

yarn add require-helper

使用

// in ts
import * as requireHelper from 'require-helper'
// in js 
import requireHelper from 'require-helper'
   //or
const requireHelper=require('require-helper')

说明

  • cwd 程序运行时所在根目录
  • 如果方法的参数名是 paths ,可以是一个 字符串 ,或者一个字符串数组

属性

require

`require(paths)`

引用一个文件

  • 如果参数是一个字符串,则直接引用
  • 如果参数是一个数组,会自动 path.join

requireRoot

`requireRoot(paths)`

cwd 作为起初目录,引入文件

requireDir

`requireDir(paths, cb, filterCb)`

引用一个目录 源码

/**
     * 
     * @param {路径,一个字符串,或者一个字符串数组,会自动join拼接} paths 
     * @param {如果定义并且返回false,会跳过本次结果,如果定义并返回新结果,则用新结果} cb 
     * 返回路径文件结果的数组   [{result,name}]
     */
    requireDir(paths, cb, filterCb) {
        let resultData = [];
        //路径过滤
        this.requireRuled(paths, (result, name) => {
            const newResult = cb && cb(result, name);
            if (cb && newResult) {
                resultData.push({ result: newResult, name });
            } else if (cb && newResult === false) {
                //定义了回调,但返回了false 则跳过本轮
            } else {
                resultData.push({ result, name });
            }
        }, filterCb || this.nameRule);
        return resultData;
    },

requireDirKV

requireDirKV(paths, cb)

返回路径文件结果的对象 {name:result}]

 //返回路径文件结果的对象   {[name]:result}]
    requireDirKV(paths, cb) {
        let resultData = {};
        //路径过滤
        this.requireRuled(paths, (result, name) => {
            resultData[name] = result;
            cb && cb(result, name);
        });
        return resultData;
    },

requireRecurse

requireRecurse(path, filter, cb, filterCb)

递归查找文件

 //递归查找文件
   requireRecurse(path, filter, cb, filterCb) {
       let dirInfos = ioHelper.findRecurseSync(path, filter);
       let dirData = { arr: [], kv: {} };
       dirInfos.forEach((n) => {
           // if (n.isFile) {  //注释后 文件夹也要了
           //取得文件的相对路径名称且含文件名    xxx\\yyy.js=> xxx
           let dirname = pathTool.dirname(n.relative);
           let extName = pathTool.extname(n.relative);
           //取得 yyy
           let name = pathTool.basename(n.relative, extName);
           let fullname = ioHelper.replaceSep(pathTool.join(dirname, name)); //  相对路径  aaa/xxx/yyy.js=>  aaa/xxx/yyy 
           if ((filterCb && filterCb(name, dirname, n)) || (!filterCb && this.nameRule(name))) {
               let result = this.require(n.filePath);
               cb && cb(fullname, result, n);
               dirData.arr.push({ result, filePath: n.filePath, fullname, name, dirInfo: n });
               dirData.kv[fullname] = result;
           }
           // }
       });
       return dirData;
   }
0.0.21

7 years ago

0.0.20

7 years ago

0.0.19

7 years ago

0.0.18

7 years ago

0.0.17

7 years ago

0.0.16

7 years ago

0.0.15

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.11

7 years ago

0.0.9

7 years ago

0.0.8

7 years ago

0.0.7

7 years ago

0.0.6

7 years ago

0.0.5

7 years ago

0.0.4

7 years ago

0.0.3

7 years ago

0.0.2

7 years ago

0.0.1

7 years ago