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

活用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文件,减少手动操作

偷懒也是提高效率的动力

相关文章:

  • AR眼镜硬件解决方案_AR/VR智能眼镜安卓主板芯片方案介绍
  • 计算机毕设 基于大数据的服务器数据分析与可视化系统 -python 可视化 大数据
  • 【数据结构】树与二叉树(四):满二叉树、完全二叉树及其性质
  • YOLOv5算法改进(22)— 更换主干网络MobileNetv3 + 添加CA注意力机制
  • KiKi知道了什么是质数,他现在想知道所有三位整数中,有多少个质数
  • viple进阶2:打印九九乘法表
  • SLAM从入门到精通(被忽视的基础图像处理)
  • STM32笔记—DMA
  • 2023年十大地推拉新接单平台和网推接单平台,都是一手单
  • mac电脑系统清理软件CleanMyMac X2024破解版下载
  • MySQL的备份恢复
  • Flink SQL DataGen Connector 示例
  • Git使用规范指南
  • 在 ASP.NET C# 中用Aspose.PDF将 PDF 页面转换为 JPG 图像
  • 浅谈电力物联网时代物联网技术在电力系统中的应用
  • [译]如何构建服务器端web组件,为何要构建?
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【node学习】协程
  • ES6 ...操作符
  • Git初体验
  • node-glob通配符
  • Puppeteer:浏览器控制器
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Vultr 教程目录
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 数据结构java版之冒泡排序及优化
  • 微服务核心架构梳理
  • 我看到的前端
  • 说说我为什么看好Spring Cloud Alibaba
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ![CDATA[ ]] 是什么东东
  • #include<初见C语言之指针(5)>
  • #QT(TCP网络编程-服务端)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (八)五种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)linux使用docker容器运行mysql
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (简单) HDU 2612 Find a way,BFS。
  • (三)docker:Dockerfile构建容器运行jar包
  • (十三)Flask之特殊装饰器详解
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • .htaccess配置常用技巧
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [.NET]桃源网络硬盘 v7.4
  • [14]内置对象
  • [Angularjs]asp.net mvc+angularjs+web api单页应用之CRUD操作
  • [BSGS算法]纯水斐波那契数列
  • [BUG]vscode插件live server无法自动打开浏览器
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [C\C++]读入优化【技巧】
  • [CF703D]Mishka and Interesting sum/[BZOJ5476]位运算