packages/okam-cli/src/utils/index.js
function traverseFilesAndCb(curDir, cb) {
    let fileDirs = [curDir];
    while (fileDirs.length) {
        let currDir = fileDirs.pop();
        let files = fs.readdirSync(currDir);
        for (let i = 0, len = files.length; i < len; i++) {
            let fileName = files[i];

            if (/^\./.test(fileName)) {
                continue;
            }

            let fullPath = path.resolve(currDir, fileName);
            let stat = getFileState(fullPath);
            if (!stat) {
                continue;
            }

            let isDir = stat.isDirectory();
            if (isDir) {
                fileDirs.push(fullPath);
                continue;
            }

            if (typeof cb === 'function') {
                cb(fullPath);
            }
        }
    }
}
function traverseFilesAndCb(curDir, cb) {
    let fileDirs = [curDir];
    while (fileDirs.length) {
        let currDir = fileDirs.pop();
        let files = fs.readdirSync(currDir);
        for (let i = 0, len = files.length; i < len; i++) {
            let fileName = files[i];

            if (/^\./.test(fileName)) {
                continue;
            }

            let fullPath = path.resolve(currDir, fileName);
            let stat = getFileState(fullPath);
            if (!stat) {
                continue;
            }

            let isDir = stat.isDirectory();
            if (isDir) {
                fileDirs.push(fullPath);
                continue;
            }

            if (typeof cb === 'function') {
                cb(fullPath);
            }
        }
    }
}
function traverseFilesAndCb ( curDir , cb ) { let fileDirs = [ curDir ] ; while ( fileDirs . length ) { let currDir = fileDirs . pop ( ) ; let files = fs . readdirSync ( currDir ) ; for ( let i = 0 , len = files . length ; i < len ; i ++ ) { let fileName = files [ i ] ; if ( / ^\. / . test ( fileName ) ) { continue ; } let fullPath = path . resolve ( currDir , fileName ) ; let stat = getFileState ( fullPath ) ; if ( ! stat ) { continue ; } let isDir = stat . isDirectory ( ) ; if ( isDir ) { fileDirs . push ( fullPath ) ; continue ; } if ( typeof cb === 'function' ) { cb ( fullPath ) ; } } } }
遍历当前文件夹下的文件并进行回调操作

@param  {string}   curDir 当前的目录
@param  {Function} cb callback function
遍历当前文件夹下的文件并进行回调操作