当前位置: 首页 > news >正文

nodejs 复制文件到指定目录

var fs = require('fs'),

    path = require('path'),

    exec = require('child_process').exec,

    sourcePath, targetPath;

//获取命令行中的路径

process.argv.forEach(function (val, index, array) {

    if (index == 2) {

        sourcePath = val;

    }

    if (index == 3) {

        targetPath = val;

    }

});

// 定义需要原封不动copy的文件类型

var copyFileType = ['.eot', '.svg', '.ttf', '.woff'];

var lessc = function (rootPath, targetPath) {

    //取得当前绝对路径

    rootPath = path.resolve(rootPath);

    //目标路径绝对路径

    targetPath = path.resolve(targetPath);

    //判断目录是否存在

    fs.exists(rootPath, function (exists) {

        //路径存在

        if (exists) {

            //获取当前路径下的所有文件和路径名

            var childArray = fs.readdirSync(rootPath);

            if (childArray.length) {

                for (var i = 0; i < childArray.length; i++) {

                    var currentFilePath = path.resolve(rootPath, childArray[i]);

                    var currentTargetPath = path.resolve(targetPath, childArray[i]);

                    //读取文件信息

                    var stats = fs.statSync(currentFilePath);

                    //若是目录则递归调用

                    if (stats.isDirectory()) {

                        lessc(currentFilePath, currentTargetPath);

                    } else {

                        //判断文件是否是原封不动copy的文件

                        if (copyFileType.includes(path.extname(currentFilePath))) {

                            var newFilePath = path.resolve(targetPath, path.basename(currentFilePath));

                            if (!fs.existsSync(targetPath)) {

                                fs.mkdirSync(targetPath, { recursive: true });

                            }

                            console.log(newFilePath);

                            exec('cp ' + currentFilePath + ' ' + targetPath);

                        }

                    }

                }

            }

        } else {

            console.log('directory is not exists');

        }

    });

};

lessc('./src/components', './dist/components');

相关文章:

nodejs 复制文件到指定目录

var fs require(fs), path require(path), exec require(child_process).exec, sourcePath, targetPath; //获取命令行中的路径 process.argv.forEach(function (val, index, array) { if (index 2) { sourcePath val; } if (index 3) { targetPath val; } }); // 定义…...

第八章 使用Apache服务部署静态网站

文章目录 第八章 使用Apache服务部署静态网站一、网站服务程序1、网站服务介绍2、Apache程序介绍 二、配置服务文件参数1、Linux系统中的配置文件2、配置httpd服务程序时最常用的参数以及用途描述 三、SELinux安全子系统1、SELinux介绍2、SELinux服务配置模式3、Semanage命令4、…...

Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用

文章&#xff1a; Three——一、初识Three以及基础的前端场景搭建(结尾含源码)Three——二、加强对三维空间的认识Three——三、动画执行、画布大小、渲染帧率和相机适配体验Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用Three——五、点线模型对象、三角形概念…...

盲目自学网络安全只会成为脚本小子?

前言&#xff1a;我们来看看怎么学才不会成为脚本小子 目录&#xff1a; 一&#xff0c;怎么入门&#xff1f; 1、Web 安全相关概念&#xff08;2 周&#xff09;2、熟悉渗透相关工具&#xff08;3 周&#xff09;3、渗透实战操作&#xff08;5 周&#xff09;4、关注安全圈动…...

文从字顺|程序员须知,如何编写高质量代码

高质量代码是软件开发中至关重要的一部分。高质量的代码不仅可以提高软件的可维护性和可复用性&#xff0c;还可以增强软件的安全性和稳定性。同时&#xff0c;可以降低软件维护成本&#xff0c;提升开发效率&#xff0c;为用户提供更好的使用体验。 写出高质量代码是每个程序…...

PCIe物理层弹性缓存机制(详细)解析-PCIe专题知识(四)

目录 前言一、简介二、详细解析2.1 实例解析2.2 具体实现过程 三、总结四、其他相关链接1、PCI总线及发展历程总结2、PCIe物理层总结-PCIE专题知识&#xff08;一&#xff09;3、PCIe数据链路层图文总结-PCIe专题知识&#xff08;二&#xff09;4、PCIe物理层链路训练和初始化总…...

分片上传和断点续传的区别?实现思路是什么?

相同&#xff1a; 分片上传和断点续传都是网络传输中常用的重要技术 不同&#xff1a; 分片上传&#xff1a;将一个大文件切分为多个小文件进行上传。这种方式能够加快上传速度&#xff0c;降低服务器压力&#xff0c;特别适用于大型文件的上传。例如&#xff0c;在云存储系统…...

微前端 qiankun@2.10.5 源码分析(二)

微前端 qiankun2.10.5 源码分析&#xff08;二&#xff09; 我们继续上一节的内容。 loadApp 方法 找到 src/loader.ts 文件的第 244 行&#xff1a; export async function loadApp<T extends ObjectType>(app: LoadableApp<T>,configuration: FrameworkConfi…...

08异步请求:何种场景下应该使用异步请求?

异步在计算机科学中早就是一个比较常用的词汇,从操作系统的特性( 并发、共享、虚拟、异步)开始,异步就在处理并发操作中起到很大的作用,不仅如此,在软件层面,异步同样也是解决并发请求的一个关键过程,它可以将瞬时激增的请求进行更加灵活的处理,通过异步请求,客户端可…...

【深度学习 | Transformer】Transformers 教程:pipeline一键预测

文章目录 一、前言二、Computer vision2.1 Image classification2.2 Object detection2.3 Image segmentation2.4 Depth estimation 三、NLP3.1 Text classification3.2 Token classification3.3 Question answering3.4 Summarization3.5 Translation3.6 Language modeling3.6.…...

HTMLCSS

1、HTML 1.1 介绍 HTML 是一门语言&#xff0c;所有的网页都是用HTML 这门语言编写出来的&#xff0c;也就是HTML是用来写网页的&#xff0c;像京东&#xff0c;12306等网站有很多网页。 这些都是网页展示出来的效果。而HTML也有专业的解释 HTML(HyperText Markup Language)…...

【安装Nginx】

Linux上安装Nginx 文章目录 Linux上安装NginxUbuntuCentOS查看已安装的软件 Ubuntu 在 Ubuntu 上安装 Nginx 非常简单。只需按照以下步骤操作&#xff1a; 打开终端&#xff0c;更新软件包索引&#xff1a; sudo apt update安装 Nginx&#xff1a; sudo apt install nginx安…...

VSCode作业1:猜数字游戏和简单计数器(包含完整代码)

目录 猜数字游戏 一、使用‘random’函数获取随机数 二、 分情况讨论输入值大小情况 三、HTML代码 四、CSS样式及运行效果 简单计数器&#xff08;计时器&#xff09; 一、使用‘setInterval’函数实现计数效果 二、使用’clearInterval‘函数实现暂停计数和重新计数效果 …...

NANK OE骨传导开放式蓝牙耳机发布,极致体验拉满!

近日&#xff0c;中国专业音频品牌NANK南卡发布了全新一代——骨传导开放式蓝牙耳机NANK OE&#xff0c;耳机采用了传统真无线和骨传导的结合方式&#xff0c;带来更加舒适的佩戴体验和音质升级&#xff0c;同时还支持单双耳自由切换&#xff0c;全新的设计收获了市场的喜爱和认…...

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动GPIO中断《包括时钟讲解》) 2023.5.9

目录 前言整体文件结构源码分析&#xff08;保姆级讲解&#xff09;中断初始化部分初始化GIC控制器初始化中断向量表设置中断向量表偏移 系统时钟初始化部分使能所有的时钟部分led初始化部分beep初始化部分key初始化部分按键中断初始化部分按键中断服务函数部分 while循环部分 …...

MySql -- 事务

目录 1.概念 2.事务的运用场景 3.事务的四大特点 4.执行事务带来的问题 4.1 脏读 4.2 不可重复度 4.3 幻读 5. MySQL中事务的隔离级别 1.概念 事务就是把若干个独立操作打包成一个整体而诞生的一种功能. 2.事务的运用场景 比如&#xff1a;A——>B 转账500 A的余额-500…...

关于大模型对未来影响的一点看法

人们总是高估了未来一到两年的变化&#xff0c;低估了未来十年的变革。 ---比尔盖茨 近来OpenAI的GPT技术可以说在全球都带来了巨大的影响&#xff0c;也让大家看到了什么叫大力出奇迹。chatGPT和GPT4的能力给了大家很大的震撼&#xff0c;其流畅自如、逻辑清晰、出众的能力&am…...

Android - 约束布局 ConstraintLayout

一、概念 解决布局嵌套过多的问题&#xff0c;采用方向约束的方式对控件进行定位。 二、位置约束 2.1 位置 至少要保证水平和垂直方向都至少有一个约束才能确定控件的位置。 layout_constraintLeft_toLeftOf我的左边&#xff0c;与XXX左边对齐。layout_constraintLeft_toRight…...

Addictive Multiplicative in NN

特征交叉是特征工程中的重要环节&#xff0c;在以表格型&#xff08;或结构化&#xff09;数据为输入的建模中起到了很关键的作用。 特征交互的作用&#xff0c;一是尽可能挖掘对目标有效的模式、特征&#xff0c;二是具有较好的可解释性&#xff0c;三是能够将对数据的洞见引…...

LeetCode 1206. 实现跳表

不使用任何库函数&#xff0c;设计一个跳表。 跳表是在 O(log(n)) 时间内完成增加、删除、搜索操作的数据结构。跳表相比于树堆与红黑树&#xff0c;其功能与性能相当&#xff0c;并且跳表的代码长度相较下更短&#xff0c;其设计思想与链表相似。 例如&#xff0c;一个跳表包…...

UniApp二维码生成避坑指南:解决常见Canvas渲染问题

UniApp二维码生成避坑指南&#xff1a;解决常见Canvas渲染问题 在移动应用开发中&#xff0c;二维码功能已成为用户交互的标配。UniApp作为跨平台开发框架&#xff0c;其Canvas组件在实现二维码生成时却存在诸多"暗礁"。本文将深入剖析五个典型场景下的Canvas渲染陷阱…...

VLP-16数据包解析实战:从原始字节到三维点云

1. VLP-16数据包解析入门指南 第一次拿到VLP-16激光雷达的原始UDP数据流时&#xff0c;我完全被那一串串十六进制数字搞懵了。这就像收到一封用密码写成的信&#xff0c;明明知道里面藏着宝贵的三维环境信息&#xff0c;却不知道如何破译。经过几个项目的实战积累&#xff0c;我…...

Java JFreeChart 折线图X轴标签优化:5分钟搞定密集数据展示问题

Java JFreeChart折线图X轴标签优化实战&#xff1a;解决密集数据展示难题 在数据可视化领域&#xff0c;折线图是最常用的图表类型之一。但当数据量激增时&#xff0c;X轴标签往往会因为空间不足而显示为省略号&#xff0c;严重影响图表可读性。本文将深入探讨如何通过定制化方…...

技术赋能B端拓客:号码核验行业的破局与价值重塑,氪迹科技法人股东号码筛选系统,阶梯式价格

2026年&#xff0c;B端拓客正式迈入智能内卷时代&#xff0c;“精准获客、降本增效”成为企业突破业绩瓶颈的核心关键词&#xff0c;而号码核验作为拓客流程的前置过滤环节&#xff0c;直接决定了线索质量与人力效能&#xff0c;成为影响拓客投入回报比的关键变量。当前&#x…...

主流开源License深度解析:从BSD到CC的适用场景与商业考量

1. 开源许可证的本质与核心价值 第一次接触开源许可证时&#xff0c;我和大多数人一样困惑&#xff1a;为什么明明是我的代码&#xff0c;却需要别人来告诉我怎么使用&#xff1f;后来在参与多个开源项目后才发现&#xff0c;许可证就像代码世界的交通规则&#xff0c;它不是为…...

如何用WeChatMsg实现微信聊天记录的永久保存与深度分析

如何用WeChatMsg实现微信聊天记录的永久保存与深度分析 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …...

保姆级教程:用smartctl命令解读你的NVMe固态硬盘健康报告(附关键指标避坑指南)

保姆级教程&#xff1a;用smartctl命令解读你的NVMe固态硬盘健康报告&#xff08;附关键指标避坑指南&#xff09; 当你发现电脑突然卡顿、文件读取异常缓慢&#xff0c;或是系统频繁提示存储错误时&#xff0c;固态硬盘的健康状况往往是首要怀疑对象。作为数据存储的核心部件&…...

政务短信钓鱼攻击机理与防控研究 —— 以美国宾州 PennDOT 诈骗事件为例

摘要 2026 年 3 月 27 日&#xff0c;宾夕法尼亚州官方发布安全预警&#xff0c;提示公众警惕冒充 PennDOT&#xff08;宾州交通局&#xff09;的短信钓鱼诈骗。此类攻击以车辆管理、罚单缴费、证件状态异常为诱饵&#xff0c;通过仿冒政务身份诱导用户点击恶意链接&#xff0c…...

GoLang实战:5分钟搞定Langchaingo调用DeepSeek-R1大模型(附完整代码)

GoLang实战&#xff1a;5分钟搞定Langchaingo调用DeepSeek-R1大模型&#xff08;附完整代码&#xff09; 如果你是一位Go开发者&#xff0c;正需要在项目中快速集成大语言模型能力&#xff0c;却苦于时间有限、文档繁杂&#xff0c;那么这篇文章就是为你量身定制的。我们将用最…...

从模型到应用:深入解析Source-Free Domain Adaptation(SFDA)的核心挑战与实战策略

1. 什么是Source-Free Domain Adaptation&#xff08;SFDA&#xff09;&#xff1f; 想象一下你是一个厨师&#xff0c;花了三年时间在四川学会了做正宗川菜。现在突然被派到广东工作&#xff0c;发现当地人对辣味的接受度完全不同。更麻烦的是&#xff0c;你不能带任何四川的食…...