活用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

相关文章

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动