• nodejs之glob与globby


    glob

    glob允许使用规则,从而获取对应规则匹配的文件。这个glob工具基于javascript.它使用了 minimatch 库来进行匹配

    安装
    npm install glob
    引入
    const glob = require('glob')
    使用

    glob方法可以传入三个参数:

    1、需要进行匹配的文件的路径(有点类似于正则表达式)。
    2、option可选项,也可以不填写。
    3、回调函数,回调函数内部可以返回两个参数,一个是匹配成功后的结果会返回一个数组,如果没有匹配上不会报错会返回一个空数组,一个是失败后的结果。
    
    示例
    glob("**/*.js", options, function (er, files) {
      console.log(files)
    })
    常用匹配规则
      • :匹配单个路径部分中的0个或多个字符。
    1. :如果在一个路径的部分,他会匹配零个或多个目录和子目录中搜索匹配。
    glob("./src/components/**/*.js", function (er, files) {
        console.log(files);
        return files
    });
    // [ './src/components/index/index.js',
    //     './src/components/news/n.js',
    //     './src/components/news/news.js' ]
    1. ?:匹配路径中某部分1个字符
    glob("./src/components/**/?.js", function (er, files) {
        console.log(files);
        return files
    });
    //[ './src/components/news/n.js' ]
    1. !(模式1|模式2|模式3):匹配与所提供的任何模式不匹配的任何内容。和正则表达式的!一样
      案例中的意思是不要n.js 不要index.js,所以就只剩下new.js了
    glob("./src/components/**/!(n|index).js", function (er, files) {
        console.log(files)
    })
    // [ './src/components/news/news.js' ] 
    1. [...] :匹配一个字符的范围,类似于一个正则表达式的范围。如果范围的第一个字符是!或者,它匹配任何不在范围内的字符

    2. ?(模式1|模式2|模式3):匹配所提供的模式的零或一个事件

    3. +(模式1|模式2|模式3):匹配所提供的模式的一个或多个事件。

    4. *(a|b|c) :匹配所提供的模式的零个或多个事件。

    5. @(pattern|pat*|pat?erN):匹配所提供的模式之一。

    使用同步语法

    在上述案例中使用的都是异步请求,调用回调得到结果,其实glob也提供了同步返回结果的API ,在这里我只列举一个

    let pattern = './src/components/**/@(index|n|news).js';
    console.log(glob.sync(pattern));
    // [ './src/components/index/index.js',
    //     './src/components/news/n.js',
    //     './src/components/news/news.js' ]
    globby

    globby,是基于 glob,并进一步得到了增强

    增强特性
    1. Promise 接口
    2. 多模式匹配
    3. 否定模式匹配
    4. 扩展目录: dir → dir/**/*
    5. 支持 .gitignore
    (async () => {
      const paths = await globby(['images','photos'],{
        expandDirectories: true
      });
      console.log(paths);
    })();
    不想写了,自己查官方文档去
    一点、一点才能到达彼岸
     
  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/taohuaya/p/13703741.html
Copyright © 2020-2023  润新知