当前位置: 首页 > 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;一个跳表包…...

Intel 14代酷睿接口更迭:技术推演与用户决策指南

1. 项目概述&#xff1a;一次关于“接口更迭”的深度技术推演最近&#xff0c;关于下一代酷睿处理器的传闻又开始在圈内流传&#xff0c;一个核心的焦点再次被推上风口浪尖&#xff1a;Intel 14代酷睿&#xff08;Raptor Lake Refresh&#xff09;可能又要更换CPU插槽接口了。这…...

2026年京东云OpenClaw/Hermes Agent配置Token Plan部署详细教程

2026年京东云OpenClaw/Hermes Agent配置Token Plan部署详细教程。OpenClaw是开源的个人AI助手&#xff0c;Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...

告警爆炸,根因定位困难?用DevOps Agent帮你自动查!

随着企业在亚马逊云科技上的工作负载日益复杂——Amazon EC2集群、Amazon RDS数据库、Amazon ECS/EKS容器、Amazon Lambda函数、网络与负载均衡等多种服务交织运行——运维团队面临严峻挑战&#xff1a;告警爆炸&#xff1a;Amazon CloudWatch、第三方监控&#xff08;Datadog、…...

给程序员和数据分析师的气象学入门:搞懂城市边界层,让你的天气API数据不再‘失真’

给程序员和数据分析师的气象学入门&#xff1a;搞懂城市边界层&#xff0c;让你的天气API数据不再‘失真’ 当你在调用天气API时&#xff0c;是否遇到过这样的困惑&#xff1a;明明获取的是同一个城市的温度数据&#xff0c;为什么市中心的气温总比郊区高出几度&#xff1f;为什…...

网安实战|DVWA中级DOM型XSS渗透测试全解,手把手教你绕过过滤拿下漏洞!

大家好&#xff0c;我是专注网安实战分享的博主&#xff0c;今天带大家深度拆解DVWA中级安全级别DOM型XSS渗透测试全过程&#xff01;DOM型XSS作为跨站脚本漏洞里的经典类型&#xff0c;和反射型、存储型有着本质区别&#xff0c;它的漏洞触发不经过服务器端解析&#xff0c;而…...

告别杂音!在RK3588上搞定HDMI音频采集与实时播放的保姆级教程

告别杂音&#xff01;RK3588 HDMI音频采集与实时播放的终极调优指南 当你在RK3588开发板上调试HDMI音频采集时&#xff0c;是否曾被突如其来的"哒哒"声搞得焦头烂额&#xff1f;这种高频杂音不仅影响用户体验&#xff0c;更可能掩盖音频流的真实质量。本文将带你深入…...

WPF-Control核心架构思想

WPF-Control 项目架构详解 一、核心架构思想 这个项目的架构可以用一句话概括&#xff1a;控件负责显示&#xff0c;服务负责能力&#xff0c;模块负责组合&#xff0c;主题负责外观&#xff0c;ApplicationBase 负责生命周期&#xff0c;IOC 负责连接所有对象。这是一种典型的…...

避开FPGA除法器设计的那些‘坑’:恢复余数 vs. 不恢复余数 vs. SRT 实战选型指南

FPGA除法器设计实战&#xff1a;恢复余数、不恢复余数与SRT算法选型指南 在数字信号处理、图形渲染或科学计算等FPGA应用中&#xff0c;除法运算往往是性能瓶颈所在。不同于乘法器可通过流水线大幅提速&#xff0c;除法器的设计需要工程师在算法选择阶段就做出关键决策——恢复…...

CTF新手必看:一张图里藏了啥?手把手教你用010 Editor秒解BUUCTF图片隐写题

CTF新手入门&#xff1a;从图片隐写题中快速提取Flag的实战指南 当你第一次接触CTF比赛中的图片隐写题时&#xff0c;可能会感到无从下手。那些看似普通的图片背后&#xff0c;往往藏着关键的Flag信息。本文将带你一步步破解BUUCTF平台上的典型图片隐写题&#xff0c;使用010 E…...

从MySQL到Neo4j:用你熟悉的SQL思维,快速上手CQL创建第一个知识图谱

从MySQL到Neo4j&#xff1a;用SQL思维快速构建知识图谱的实战指南 当你在MySQL中熟练编写JOIN查询时&#xff0c;是否想过这些表关系本质上就是一张网&#xff1f;图数据库将这种网状关系作为一等公民&#xff0c;而Neo4j正是这个领域的佼佼者。本文会带你用熟悉的SQL视角&…...