如何使用nodejs在文件目录中提取关键字,如el-input这些以“el-“开头的字

  • 传入指定的文件夹的路径。利用fs的读取文件能力,递归进行读取。
const path = require("path"),
  fs = require("fs");

const list = [];
// 遍历读到某个目录下所有文件名
function listFile(dir){
  var arr = fs.readdirSync(dir);
  arr.forEach(function(item){
      var fullpath = path.join(dir,item);
      var stats = fs.statSync(fullpath);
      if(stats.isDirectory()){
          listFile(fullpath);
      }else{
          list.push(fullpath);
      }
  });
  return list;
}

var res = listFile(`F:/1-工作文件/1-前端资料/vue2-test/big-screen-main/src`);

可以看到全部目录都读取下来了

  • 只保留是vue结尾的文件,然后读取文件的内容,从内容中提取满足要求的关键字
     
    const resultSet = new Set();
    
    // 得到后缀为vue的资源
    const suffixIsVueFile = res.filter(name => getSuffixName(name) === "vue")
    suffixIsVueFile.forEach(name => {
      // 同步读取文件的内容
      const context = fs.readFileSync(name, "utf-8");
      // 从内容中提取是el-xxx的字符串
      const result = findResultByString(context) || [];
      result.forEach(i => { 
        resultSet.add(i.replace("<", ""));
      })
    })
    
    // 获取el-xxx的全部标签从一个字符串中
    function findResultByString(str) { 
      return str.match(/<el-\w*/g)
    }
    
    
    // 得到后缀
    function getSuffixName (str) { 
      const list = str.split(".");
      return list[list.length - 1]
    }
    

    得到结果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值