【nodejs脚本】为文件夹中的所有node项目执行命令 npm install 并收集error日志
目录 im 下有很多的node项目,我需要批量为这些项目执行 npm install,另外npm的error信息需要单独收集至log文件中
var fs = require('fs');
var util = require('util');
var exec = util.promisify(require('child_process').exec);var projectsDirectory = '.';
var logFilePath = './npm_install_errors.log'; // 更改为您的日志文件路径
var br = `⬆⬆⬆ ---------------------------------------------------------------- ⬆⬆⬆ \n\n`;async function runNpmInstall(projectDir) {try {var errorContent = '';var { stdout, stderr } = await exec('npm install', { cwd: projectDir });console.log(`在 ${projectDir} 执行 'npm install' 完成。`);console.log(br);if (stdout) console.log(stdout);if (stderr) {errorContent = `在 ${projectDir} 执行 'npm install' 时出错: >>> \n ${stderr} \n` + br;console.error( errorContent );// 将错误信息写入日志文件fs.appendFile(logFilePath, errorContent, (err) => {if (err) console.error(`无法追加到日志文件: ${err}`);});}} catch (error) {errorContent = `在 ${projectDir} 执行 'npm install' 时出错: >>> \n ${error.message} \n` + br;// 将错误信息追加到日志文件fs.appendFile(logFilePath,errorContent, (err) => {if (err) console.error(`无法追加到日志文件: ${err}`);});}
}async function main() {try {// 读取目录下的所有文件夹var projectFolders = await fs.promises.readdir(projectsDirectory, { withFileTypes: true });// 遍历每个文件夹for (var folder of projectFolders) {if (folder.isDirectory()) {var projectDir = `${projectsDirectory}/${folder.name}`;var packageJsonPath = `${projectDir}/package.json`;// 检查是否存在 package.json 文件if (fs.existsSync(packageJsonPath)) {console.log(`在 ${projectDir} 执行 'npm install'...`);await runNpmInstall(projectDir);} else {console.log(`在 ${projectDir} 找不到 package.json 文件,跳过。\n\n`);}}}} catch (error) {var errorContent = `发生错误: ${error.message} \n` + br;;// 将错误信息追加到日志文件fs.appendFile(logFilePath, errorContent, (err) => {if (err) console.error(`无法追加到日志文件: ${err}`);});}
}main();
相关文章:
【nodejs脚本】为文件夹中的所有node项目执行命令 npm install 并收集error日志
目录 im 下有很多的node项目,我需要批量为这些项目执行 npm install,另外npm的error信息需要单独收集至log文件中 var fs require(fs); var util require(util); var exec util.promisify(require(child_process).exec);var projectsDirectory .; v…...
非父子组件通信-发布订阅模式
发布订阅模式其实与vue无关,完全是ES6的代码,但是它可以通过这种模式实现非父子组件的通信 store.js文件 首先创建一个store.js文件,用于提供发布与订阅方法 export default {datalist: [], //存放带一个参数的函数集合//订阅subscribe(fu…...
iPhone手机分辨率整理
手机机型(iPhone)屏幕尺寸 (inch)逻辑分辨率(pt)设备分辨率(px)缩放因子(Scale Factor)竖屏安全区域(safeAreaInsets)纵横比(Aspect ratio)像素密度(ppi)2G/3G/3GS3.5320*480320*4801xtop:20 bottom:03:21654/4(s)3.5320*480640*9602xtop:20 bottom:016:…...
【linux】SourceForge 开源软件开发平台和仓库
在linux上面安装服务和工具。我们经常会下载安装包。今天推荐一个网站。 SourceForge 开源软件开发平台和仓库 全球最大开源软件开发平台和仓库 SourceForge.net,又称SF.net,是开源软件开发者进行开发管理的集中式场所。 SourceForge.net由VA Softwa…...
LabVIEW应用开发——控件的使用(四)
接上文,这篇介绍时间控件。 LabVIEW应用开发——控件的使用(三) 1、时间控件Time Stamp control 在日常软件开发场景中,时间也是一种常用的控件,用于表达当前时间的显示、对下设置时间、时间同步等等场景。LabVIEW专门…...
MySQL - mvcc
mvcc 是什么? MVCC(多版本并发控制)是一种数据库并发控制机制,旨在提高数据库的并发性,避免锁定操作,从而减少等待和提高性能。MVCC 主要解决数据库读写操作之间的线程安全问题。 MVCC 主要有两种读取数据…...
SpringMVC 异常处理器
1、基于配置的异常处理 SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolver HandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver和SimpleMappingExceptionResolver SpringMVC提供了自定…...
迷你洗衣机哪个牌子好又实惠?内裤洗衣机热销前四榜单
小型内裤洗衣机是一款很实用的家用电器,非常适合住在小户型的房子里,或者经常要出差的人。所以,买什么牌子的内衣洗衣机比较好?目前市场上各品牌各有各的特色及应用场合,例如适合于贴身衣物如内衣、内裤、婴儿衣物清洗…...
SOCKS5代理与网络安全:如何安全地进行爬虫操作
随着网络技术的不断发展,代理技术在网络安全和数据爬取中扮演着越来越重要的角色。本文将重点介绍SOCKS5代理、SK5代理和IP代理的基本概念,以及如何在保证网络安全的前提下,利用这些技术进行有效的爬虫操作。 1. SOCKS5代理与SK5代理 SOCKS…...
onebound电商API接口商品数据采集平台:让数据成为生产力!
随着数字化商业时代的到来,API接口已成为电商资源连接利器,也是全球传统互联网企业转型的基础。 2021年 Google Cloud 研究显示,全球互联网企业近3/4的企业持续投入数字化转型,2/3的企业在持续增加投入,从这组数据可以…...
Kafka磁盘写满日志清理操作
最近项目组的kafka集群,老是由于应用端写入kafka topic的消息太多,导致所在的broker节点占满,导致其他的组件接连宕机。 这里和应用端沟通可以删除1天之前的消息来清理磁盘,并且可以调整topic的消息存活时间。 一、调整Topic的消…...
SSL证书:网络通信安全的基石
随着互联网的深入发展和电子商务的普及,网络安全问题变得越来越重要。SSL证书作为保障网络通信安全的重要组成部分,扮演着至关重要的角色。本文将深入剖析SSL证书的底层原理、作用、应用场景以及优缺点,帮助您更好地理解网络通信安全。 一、…...
Python第三方库 - Flash(python web框架)
1 Flask 1.1 认识Flask Web Application Framework( Web 应用程序框架)或简单的 Web Framework( Web 框架)表示一个库和模块的集合,使 Web 应用程序开发人员能够编写应用程序,而不必担心协议,线…...
基于C#使用winform技术的游戏平台的实现【C#课程设计】
基于C#使用winform技术的游戏平台的实现【C#课程设计】 说明项目结构项目运行截图及实现的功能 部分代码一些说明(个人觉得一些难点的说明)一、ListView ,ImageList 的综合使用二、图片上传以及picturebox 图片的动态替换三、图表插件的使用四、SQL工具类封装五、高…...
springboot缓存篇之内置缓存
前言 前面我们讲了mybatis的一级缓存和二级缓存,这种缓存是基于持久层的缓存,存在很大的局限性。这篇文章主要分享一下另外的一种缓存方式,springboot的内置缓存,看看内置缓存的用法和它的优劣。 开启缓存 在使用springboot的内…...
微信小程序开发之投票管理及小程序UI的使用
目录 一、小程序UI 1.讲述 2. 介绍vantWeapp 3. 使用vantWeapp 安装 构建 依赖 引用 二、后端 1. 后端实体对象 2. 后端接口 3. 实现类 4. 请求处理类 三、前端 1. 定义路径 2. 页面引用 3. 页面 4. 页面美化 5. 数据 6. 效果展示 一、小程序UI 1.讲述 小…...
EPB功能开发与测试(基于ModelBase实现)
ModelBase是经纬恒润开发的车辆仿真软件,包含两个大版本:动力学版本、智能驾驶版本。动力学版包含高精度动力学模型,能很好地复现车辆在实际道路中运行的各种状态变化,可用于乘用车、商用车动力底盘系统算法开发、控制器仿真测试&…...
微信小程序:点击按钮出现右侧弹窗
效果 代码 wxml <!-- 弹窗信息 --> <view class"popup-container" wx:if"{{showPopup}}"><view class"popup-content"><!-- 弹窗内容 --><text>这是一个右侧弹窗</text></view> </view> <…...
EEG脑电信号的具体采集过程
脑电图(EEG)是一种记录大脑活动的非侵入性方法。下面是EEG脑电信号的典型采集过程: 准备:在进行EEG采集之前,需要准备好以下设备和材料: EEG采集设备:包括EEG电极、放大器和记录设备。电极帽或电…...
SYS/BIOS 开发教程: 创建自定义平台
目录 SYS/BIOS 开发教程: 创建自定义平台创建自定义平台新建工程并指定自定义平台修改现有工程使用自定义平台 参考: TI SYS/BIOS v6.35 Real-time Operating System User’s Guide 6.2节 本示例基于 EVMC6678L 开发板, 创建自定义平台, 并将代码段的位置指定到C6678器件内部的…...
116. 为项目监控员生成的警报添加标签
Procedure 程序To label alerts for Project Monitors, you must configure the Prometheus Federator Helm charts values section. This is done by adding additionalRuleLabels under defaultRules within helmProjectOperator. You can perform this modification during…...
Notepad--:当文本编辑遇到真正的跨平台解决方案
Notepad--:当文本编辑遇到真正的跨平台解决方案 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- 你是否曾因…...
3个步骤掌握lx-music-desktop开源项目部署实践
3个步骤掌握lx-music-desktop开源项目部署实践 【免费下载链接】lx-music-desktop 一个基于 Electron 的音乐软件 项目地址: https://gitcode.com/GitHub_Trending/lx/lx-music-desktop lx-music-desktop是一款基于Electron开发的跨平台音乐软件,通过本指南你…...
实测Qwen-Image-Edit-2511:输入一张图,输出360°环绕视角,效果太强了
实测Qwen-Image-Edit-2511:输入一张图,输出360环绕视角,效果太强了 1. 引言:单图变多视角的技术突破 想象一下,你只需要一张普通的商品照片,就能自动生成360度全方位的展示效果。这不是科幻电影里的场景&…...
重构macOS滚动体验:Scroll Reverser的跨设备解决方案
重构macOS滚动体验:Scroll Reverser的跨设备解决方案 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 破解多设备滚动的混乱困局 当设计师小李同时连接数位板和鼠标工…...
【2026年最新600套毕设项目分享】springboot智慧医疗管理系统(14315)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
VR环保学习机|开启沉浸式环保教育新时代
在环保教育不断升级的今天,如何让公众尤其是青少年真正理解环保的重要性、养成绿色习惯,已经成为教育领域的重要课题。传统的图文讲解虽然内容充足,却往往缺少互动性和代入感,难以让学习者产生深刻的记忆。VR环保学习机正是在这样…...
4个核心预训练模型应用指南:从资源获取到问题诊断
4个核心预训练模型应用指南:从资源获取到问题诊断 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc 预训练模型是so-vits-svc实现高质量语音转换的基础组件,这些经过…...
Buck电路PCB布局优化与EMI控制技巧
1. Buck电路PCB布局的重要性在开关电源设计中,PCB布局的好坏直接决定了电源的稳定性、效率和EMI性能。以Buck电路为例,不合理的布局可能导致输出电压纹波增大、转换效率降低、甚至引发系统振荡等问题。我从事电源设计多年,见过太多因为PCB布局…...
新手避坑指南:用STM32F407和AS5600给无刷电机做FOC驱动,从硬件选型到代码调试全流程
STM32F407AS5600无刷电机FOC驱动实战:从零搭建到参数调优全解析 1. 硬件选型与电路设计避坑指南 选择适合的硬件组合是FOC驱动项目成功的第一步。对于刚接触无刷电机控制的开发者来说,市面上琳琅满目的开发板和电机型号往往让人眼花缭乱。经过多次项目…...
