活用package.json脚本,用node拷贝文件到指定目录

2023-11-07 19:12

本文主要是介绍活用package.json脚本,用node拷贝文件到指定目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在项目中遇到需要将前端项目打包后的dist目录拷贝到指定目录,不想每次都手动拷贝,可以考虑在package.json中加个脚本,例如下面的build脚本,&&后面添加的部分 (&&表示执行完前面脚本开始执行后面脚本,可以添加多个&&)

"scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack --config ./webpack/webpack.pro.conf.js && node ./copyDistToSdk.js"
}

copyDistToSdk.js 内容如下:

const fs = require('fs');
const path = require('path');// 拷贝js文件
function copyJSFiles(sourceDir, targetDir) {// 读取源文件夹中的文件列表const files = fs.readdirSync(sourceDir);// 遍历文件列表files.forEach(file => {const sourcePath = path.join(sourceDir, file);const targetPath = path.join(targetDir, file);// 获取文件信息const stats = fs.statSync(sourcePath);// 如果是目录,则递归调用 copyJSFilesif (stats.isDirectory()) {fs.mkdirSync(targetPath);copyJSFiles(sourcePath, targetPath);}// 如果是以 .js 后缀的文件,则进行拷贝操作。如果不需要判断文件后缀,可以直接写elseelse if (path.extname(file) === '.js') {fs.copyFileSync(sourcePath, targetPath);console.log(`Copied: ${sourcePath} to ${targetPath}`);}});
}// 调用函数,设置源文件夹和目标文件夹路径
const sourceFolder = path.join(__dirname, '/dist');
const targetFolder_js = path.join(process.cwd(), '..', '..', 'public/static/js');
// process.cwd()表示到根目录下,目标目录 加两次".."(代表../../ 返回项目根目录)  
// 如果目标层级不变 可以直接写 path.join(process.cwd(), 'public/static/js');
copyJSFiles(sourceFolder, targetFolder_js);

这样每次build之后,脚本会自动拷贝dist文件,减少手动操作

偷懒也是提高效率的动力

这篇关于活用package.json脚本,用node拷贝文件到指定目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/365706

相关文章

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

Node Linux相关安装

下载经编译好的文件cd /optwget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.gztar -xvf node-v10.15.3-linux-x64.tar.gzln -s /opt/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/ln -s /opt/nod

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

centos6一键安装vsftpd脚本

centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 (命令执行:sh xxx.sh add)3.卸载vsftpd (命令执行:sh xxx.sh uninstall) 测试环境:centos6 x64 centos6 x86(测试centos7以

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到