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

【SIP基础】SIP协议基本呼叫流程

SIP呼叫流程下图显示了一个SIP会话的基本呼叫流程。 下面是上述呼叫流程的详细解释: Alice发送INVITE请求到代理服务器,INVITE请求负责发起会话。 代理服务器立即发送Trying 100给请求者(Alice),表示试图响应INVITE请求,以防止重传该INVITE请求。 代理服务器搜索Bob所在位置服务器的地址,得到的地址后,将转发INVITE请求到Bob。 此后,Bob回应180

VVSIP官网博客 1万+

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

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

qq_53388056的博客 1059

宏基因组分析|完整分析流程梳理

今天先从最基础的全流程框架说起,无论是刚接触的萌新,还是想查漏补缺的同行,都能找到有用的信息。

weixin_70911870的博客 3165

c语言【分糖果】2023蓝桥杯4124(枚举,递归,dfs)

但是这是不符合我们糖果刚好分完的条件的,我们应该往回退到上一层,也就是孩子6这层,然后j+1=3,孩子7分到3个第二种糖果,这也不符合我们糖果刚好分完的条件,然后就会再次回退到孩子6这里,然后j+1=4,让我们的孩子7获得5块第二种糖果,然后还是不符合糖果刚分完的条件,于是再一次退回到孩子6这里,然后就会有外循环i+1=1,j=1,孩子7分到1块第一种糖果1块第二块糖果......然后就是这样的不停地回溯,试探,直到把整棵树遍历一遍,并且记录所有的满足条件的组合。先放一下我的代码,我的代码超时啦救命!

weixin_74331419的博客 731

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

Windows11+VS2022驱动开发环境搭建实战:从零到编译(避坑指南)

本文详细介绍了在Windows11系统下使用VS2022搭建驱动开发环境的完整流程,包括版本匹配、工具安装、环境配置及常见问题解决。重点强调了WDK与系统版本的严格匹配,以及VS2022中驱动开发组件的正确配置方法,帮助开发者高效避坑并成功编译第一个驱动程序。

weixin_29251337的博客 527

Nodejs安装及配置

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

3万+

分享一个简单的迭代学习机器人双臂控制(MATLAB)

1 什么是迭代学习控制 迭代学习控制(iterative learning control,简称ILC)由Uchiyama于1978年首先提出,不过因为论文由日文撰写,影响不是很大。1984年,Arimoto等人用英文介绍了该方法。它是指不断重复一个同样轨迹的控制尝试,并以此修正控制律,以得到非常好的控制效果的控制方法。 迭代学习控制的特点是“在重复中学习”,通过反复的迭代修正,达到改善控制效果的目的。迭代学习控制的原理是根据系统前次运行所获得的输出误差信息,在控制过程中不断修正控制输入,随着迭代的进行,逐

weixin_45776027的博客 4483

ROS入门(一)——ROS安装(vmware16+ubuntu20.04+ROS-Noetic)

嵌套:ROS可以在Ubuntu上运行,Ubuntu在虚拟机Vmware中安装。 从 虚拟机vmware安装→ubuntu安装→ros安装,逐步介绍安装ROS环境的过程。整个过程是我一步步跟着各种博客安装实现的,亲测可行。 版本: Vmware :Vmware Workstation16 Ubuntu :20.04 ROS :Noetic 其中vmware直接载当前最新版本就好,而ubuntu的版本要注意一下。 在ROS官网(cn - ROS Wiki),我们进入到ROS安装的步骤界面,可以看..

Netceor的博客 9740

NodeJS生成字节码

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

itas109的专栏 2703

QT实现图片ROI区域的框选、移动、缩放(附完整源码)

QT实现图片ROI区域的框选、移动、缩放(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1194

NodeJs之word文件生成与解析

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

LeoStarry2014的博客 1914

ARFoundation系列讲解 - 手部跟踪编程

通过使用ARFoundation的手部跟踪子系统,我们可以轻松地在AR应用程序中实现与用户手部的交互。通过设置AR环境、创建场景和相机、添加手部跟踪功能以及编写相应的脚本,我们可以开始在AR场景中跟踪和操作用户的手部。在Unity中创建一个新场景,并将AR Session组件添加到场景中的一个空对象上。手部跟踪的具体实现可能因AR设备和平台的不同而有所差异,你可能需要根据你的使用情况进行一些适配和调整。当你将手部放入AR场景中时,手部跟踪系统将触发相应的事件,并调用脚本中的回调函数。

2301_79325339的博客 355

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

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

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

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

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

WINCC7.3破解文件

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

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

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

Yiu的博客 8959

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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、付费专栏及课程。

余额充值