nodejs生成项目目录树

nodejs 生成树形目录 阅读详情

记录一个项目目录生成代码,方便写文档

// 递归目录树(只能用同步,用异步会出现后面的文件比前面的文件先输出,顺序会乱。)
// 默认按照ASCII码的顺序,例如js里面的sort()函数。
 
// 先写一层的情况
// 抽象递归参数
// 找到突破点(避免死循环)
//   自己调自己,某种情况(肯定会存在的)不调用
 
 
const fs = require('fs');
const path = require('path');
 
// 获取当前有没有传入目标路径
var target = path.join(__dirname, process.argv[2] || './');

function changstrs(str){
    //D:\webnews\xzy\demo\node_modules\@babel\runtime\helpers
    let ss = "";

    for(var s=0;s<str.length;s++){
        let item = str[s];

        if((item!="/" &&  item!="@") && item!=":"){
            ss+=item;
        }
    }
    

    /* str.forEach((item,index)=>{
        if((item!="/" &&  item!="@") && item!=":"){
            ss+=item;
        }
    }) */


    return ss;
}

 
function load(target, depth) {
  // depth  0 = ''
  // depth  1 = '│ '
  // depth  2 = '│ │ '
  var prefix = new Array(depth + 1).join('│ ');// join()函数的妙用
  //console.log("target",target);
  //console.log("target",depth);

  let ssf = changstrs(target);
  if(ssf.indexOf("node_modules") != -1 ){//如果是npm包
    return false;
  }
 
  //  读取一个目录的内容,返回一个不包括 '.' 和 '..' 的文件名的数组。
  var dirinfos = fs.readdirSync(target);
 
  var dirs = [];
  var files = [];
 
  dirinfos.forEach(info=> {
    // 返回一个 fs.Stats 实例
    var stats = fs.statSync(path.join(target, info));
    if (stats.isFile()) {
      files.push(info);
    } else {
      dirs.push(info);
    }
  });
 
  dirs.forEach(dir=> {
    console.log(`${prefix}├─${dir}`); // node_modules
    // 当前是一个目录 需要深入进去
    load(path.join(target, dir), depth + 1);
  });
 
  var count = files.length - 1;  // 此处必须-1与下面的count--想对应
  files.forEach(file=> {
    var temp = count-- ? '├' : '└';  // 三元运算符的妙用
    console.log(`${prefix}${temp}─${file}`);
  });
}
 
load(target, 0);


引用地址

node-directory-tree:将目录树转换为JS对象 目录树 创建一个表示目录树JavaScript对象。 安装 $ npm install directory-tree 用法 const dirTree = require ( "directory-tree" ) ; const tree = dirTree ( "/some/path" ) ; 您还可以按扩展名regex进行过滤:这对于仅包含某些类型的文件很有用。 const dirTree = require ( "directory-tree" ) ; const filteredTree = dirTree ( "/some/path" , { extensions : / \. txt / } ) ; 使用正则表达式过滤多个扩展的示例。 const dirTree = require ( "directory-tree" ) ; const filteredTree = 立即下载

相关推荐

directory_tree:提供了一种在 Go 中生成目录树的方法

包目录_tree import "github.com/marcinwyszynski/directory_tree" 包 directory_tree 提供了一种生成目录树的方法。 用法示例: tree, err := directory_tree.NewTree("/home/me") 类型节点 type Node struct { FullPath string `json:"path"` Info *FileInfo `json:"info"` Children []*Node `json:"children"` } 节点代表目录树中的一个节点。 功能新树 func NewTree(root string) *Node, error NewTree 从提供的根开始创建目录层次结构。 输入文件信息 type FileInfo struct

nodejs构建文件目录树

nodeJs遍历目录输出树形文件目录结构 FR:徐海涛(hunk Xu) QQ技术交流群:386476712

海涛高软 356

Python爬虫实战:用Selenium+ChromeDriver批量抓取政府网站政策文件(附完整代码)

本文详细介绍了使用Python的Selenium和ChromeDriver进行政府网站政策文件批量抓取的实战技巧。从环境配置、动态页面元素定位到分页机制破解和反爬虫策略,提供了完整的解决方案和代码示例,帮助开发者高效获取结构化政策数据。

weixin_42531710的博客 266

Windows 使用 tree-node-cli 命令生成项目目录树

Windows 使用 tree-node-cli 命令生成项目目录树 相比起来第一种确实方便不少这里推荐一个插件安装忽略xxx文件 显示xxx文件 帮助命令 treee -h 参数说明:转载:https://juejin.cn/post/7046287977000992781#heading-0tree-node-cli文档

qq_53388056的博客 1059

安卓手机游戏《英雄迷宫冒险》存档修改

警告 修改前务必备份存档文件夹。该游戏有自动删除存档的功能,有问题的存档会自动删除。 修改对应的游戏版本为1.5。 存档保存位置 内部存储\Android\data\com.xmmf.yxmgmx.taptap\files 该文件夹中文件如下: data.wsf:数据文件。 wsfSave0:第一个存档。 wsfSave1:第二个存档。 修改金钱的例子 先进游戏确认当前金钱数量。当前金钱是2498,然后退出游戏。 根据金钱数量计算出存档中的内容。2498的十六进制是9C2,存档中的内容在存档中搜索该数

番茄鸡蛋的专栏 9362

深入LSM6DSL的FIFO连续模式:基于STM32和MEMS库的数据流高效处理指南

本文深入探讨了LSM6DSL的FIFO连续模式,结合STM32硬件平台和ST官方MEMS库,提供了高效的数据流处理方案。通过优化I2C通信时序、中断驱动设计以及动态ODR调整,实现低功耗数据采集与处理,显著提升嵌入式传感器应用的性能和续航能力。

weixin_30387799的博客 349

Android NDK开发终极指南:C++与Java交互的10个核心技巧

想要提升Android应用性能?掌握NDK开发中的C++与Java交互技术是关键!😊 在Android开发中,NDK(Native Development Kit)让我们能够使用C++编写高性能代码,同时与Java层无缝协作。本文将为你揭秘NDK开发的核心要点,帮助你快速掌握C++与Java交互的最佳实践。 ## 🚀 什么是Android NDK开发? NDK开发允许我们在Android应

gitblog_00953的博客 880

高德地图爬虫

高德地图爬虫 工具:Pycharm,win10,Python3.6.4 1.需求分析 这篇爬虫和上一篇百度地图爬虫要求一样,百度地图爬虫我发现有一个auth参数会一直变化,一旦变化则获取的数据是不准确的,所以我上高德地图看了一下,高德地图没有这个反爬机制。但是高德地图大概爬取120个页面就会跳一次验证码,我这里是通过换IP解决这个问题的。 2.数据准备 同样我们需要全国地级市信息,用之前...

123的博客 1万+

Nodejs安装及配置

Nodejs的安装及配置详细教程 本文更新于2020-12-2,如果时间太久已失效,请留言 本教程使用虚拟机全新环境进行演示,如未安装过Nodejs几乎100%安装配置成功,如未成功,请洗脸重试~ 下载Nodejs 进入Nodejs官网https://nodejs.org/zh-cn/ 选择下载最新版,也可以选择稳定的版本,个人喜欢用新的 安装Nodejs 双击下载的安装包 点击Next,开始进入安装 勾选 I accept the terms in the License

3万+

编写python脚本调用ordinals以及BRC20的接口

1、钱包地址生成walletreceive,对应ord命令:ord wallet receive。6、测试手动出块generate,这个只在regtest链节点用得上。所有接口都是post请求,采用postman进行测试。4、测试bitcoin转币sendtoaddress。7、测试其他的wallet方法wallet。2、钱包币种铭刻inscription,对应bitcoin-cli命令。对应bitcoin-cli命令。对应bitcoin-cli命令。fee.json文本模板。还可以加很多根据需要加减。

云深海阔专栏 1048

计算电磁学(三)有限差分方法

有限差分方法(FDM)是一种数值处理方法,通过将偏微分方程变换为一组代数方程,通过求解代数方程组来得到原边值问题的近似值。由于有限差分法非常简单,所以也特别的稳定高效。其中时域有限差分方法(FDTD)是电磁分析中的常用方法。在计算电磁学中,常用有限差分方法(finite difference equations)来替代微分方程。一个有限差分法通常包括三个步骤将求解域划分网格用有限差分方程逼近给定的微分方程求解在给定边界条件和初始状态下的方程常用的网格模型方阵斜方阵三角阵圆形阵。

CCC_B的博客 1639

NodeJS生成字节码

NodeJS生成字节码 相关问题: 1.nodejs源码保护 2.nodejs源码加密 3.nodejs提升运行速度 前言 传统的后端运行环境,如 Java、.NET,其源代码是经过编译才部署到服务器上运行的,不存在泄露的风险。而对于应用越来越广泛的 Node.js 而言,运行的则是源代码。即使经过压缩混淆,也可以很大程度地还原。 本文介绍一种可用于 Node.js 端的代码保护方案,使得 Nod...

itas109的专栏 2703

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

NodeJs之word文件生成与解析

NodeJs之word文件生成与解析 一,介绍与需求 1.1,介绍 1,officegen 模块可以为Microsoft Office 2007及更高版本生成Office Open XML文件。此模块不依赖于任何框架,您不需要安装Microsoft Office,因此您可以将它用于任何类型的JavaScript应用程序。输出也是流而不是文件,不依赖于任何输出工具。此模块应适...

LeoStarry2014的博客 1914

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Nodejs快速生成源代码文件(2024.5.20)

Nodejs 快速生成其他语言(Java、SQL)源代码文件,高效便捷,支持自定义,可扩展,批量省时

I have a dream, here my dreams come true! 1499

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NodeJS开发博客(一)项目搭建

一、安装NodeJs 去nodejs官网下载最新版本就行,网址:http://nodejs.cn/download/,点击自己适用的系统,自动下载跟电脑操作系统位数符合的安装包 根据自己的系统选择自己需要下载的NodeJS安装包。 二、使用CMD命令行 检查NodeJS 、npm 是否安装成功! window+R 输入CMD 然后在命令行中输入  node -v 和 npm -v  查...

Yiu的博客 8959

MQTT协议 NodeJS客户端

NodeJS和npm安装就不说了,直接进入正题。 (1)创建项目目录,例如MqttClient,在该目录下执行命令npm init, 这时就会在目录下产生package.json配置文件,包括依赖库管理。 (2)参考MQTT库官方文档 https://www.npmjs.c...

李乾文的博客 1951

JHipster NodeJS 生成器常见问题解决方案

JHipster NodeJS 生成器常见问题解决方案 1. 项目基础介绍和主要编程语言 JHipster NodeJS 生成器是一个开源项目,旨在帮助开发者使用 NestJS TypeScript 框架快速生成 NodeJS 后端代码。该项目是基于 JHipster 的蓝图(Blueprint)机制,可以与 JHipster 应用程序无缝集成。主要编程语言为 TypeScript,同时支持使用 ...

gitblog_00857的博客 808

NodeJS生成二维码

nodejs生成二维码,利用qr-image插件

cdlhuize的博客 6286

EventSourcing.NodeJS 项目教程

EventSourcing.NodeJS 项目教程 1. 项目的目录结构及介绍 本项目是基于 NodeJS 的 Event Sourcing 实践项目,其目录结构如下: EventSourcing.NodeJS/ ├── .github/ # 存放 GitHub 相关的配置文件 ├── samples/ # 包含示例代码和教程 ├── worksh...

gitblog_00188的博客 795

推荐Nodejs下高效存储树到数据库工具库-FlexTree

介绍一款Nodejs下高效存储树到数据库工具库-FlexTree

Fisher的专栏 1155

NodeJS入门(一)---nodejs详细安装步骤

参考文章:http://www.lvtao.net/content/book/node.js.htm#1.5

u010255310的博客 12万+

Nodejs -- Nodejs生成uid

在项目开发中,为了便于数据的查找、关联,在数据表都会给某个字段设置为主键(primary key),确保该字段的唯一性、不可重复性。 在Nodejs中,提供了node-uuid模版用于生成uuid,很大程度上该uuid是不重复的。 执行安装命令: npm install node-uuid 在相应js文件中引用: //引入: var uuid = require('node-uui...

Emily 1196

NodeJS环境搭建 IntelliJ IDEA

本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见。1、首先下载安装NodeJS,下载安装IntelliJ IDEA2、接下来我们详细介绍在IDEA中配置NodeJS默认安装好了IDEA,在IDEA的file -&gt; setting -&gt;Plugins,右边默认是没有这个组件的需要你手动点击Browe repositories..,在插件列表中搜索nodejs,将看到Nod...

plpldog的博客 9425

nodejs 制作项目目录树代码

// 递归目录树(只能用同步,用异步会出现后面的文件比前面的文件先输出,顺序会乱。) // 默认按照ASCII码的顺序,例如js里面的sort()函数。 // 先写一层的情况 // 抽象递归参数 // 找到突破点(避免死循环) // 自己调自己,某种情况(肯定会存在的)不调用 const fs = require('fs'); const path = requi...

weixin_30745641的博客 206
上一篇: git子模块实践
下一篇: node-crawler爬虫实践
一号小白
博客等级 码龄9年 13粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值