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

【截图服务 +打包】pkg打包 puppeteer

目录

最后结论

windows打包成服务 

定制executablePath 

 

服务遇到的问题

 使用java开一个线程启动

遇到的问题与解决

版本匹配问题

打出包后的运行报错问题

linux下的安装

安装n

库缺少

程序运行后的报错

制作

运行报错与修改后成功

参考文档


最后结论

pkg -t win --public ./screenshots.js --output ./dist/screen.exe

服务启动:

postman调用 : 

windows打包成服务 

  

D:\web-video-platform\nssm.exe install wvp-screen  "D:\web-video-platform\chrome\screen"
rem D:\web-video-platform\nssm.exe set wvp-screen AppDirectory "D:\web-video-platform\chrome"
D:\web-video-platform\nssm.exe start wvp-screen

定制executablePath 

 

{"executablePath": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
}

使用方法 

const config2 = require("D:\\web-video-platform\\chrome\\puppeteer.config.json");

 

服务遇到的问题

    会找不着系统默认的chrome位置 

    会有时候截图是空

 使用java开一个线程启动

     会截图几次后服务死掉

 

遇到的问题与解决

版本匹配问题

pkg 这里说的是v3.5,实际装的是5.8.1,没有关系;可以向下兼容。

但node 18.15.0以上的就没有能与pkg相匹配相适应 的, 所以只能选 这个 。

node,21 ,19.8.1 在工程里都试过了,工程本身可以,但pkg进行打包时,说明pkg没有找到能匹配 》19版本的实现,所以,只能选  18.15.0 

打出包后的运行报错问题

 如下解决nodejs + pkg+ puppeteer 路径问题以及 Passed function is not well-serializable 问题_passed function cannot be serialized!-CSDN博客

linux下的安装

安装n

由于gcc没有装,先装gcc ;然后再装glibc23 

linux文件版本管理,Linux下使用n来管理多版本NodeJS-CSDN博客

库缺少

 /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ../../bin/xxx)
 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ../../bin/xxx)
————————————————

            Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found-CSDN博客 

因为已经安装了gcc 9.x的版本,所以找找就好

# 查询本机的so库
find / -name "libstdc++.so.*"

cp /usr/local/gcc/...../libstdc++.so.6.0.28 /usr/lib64

ln -snf ./libstdc++.so.6.0.28 ./libstdc++.so.6

程序运行后的报错

Error: Failed to launch the browser process! /root/.cache/puppeteer/chrome/linux-123.0.6312.58/chrom

centos puppeteer问题汇总_missing x server or $display-CSDN博客

制作

pkg -t linux --public ./screenshots.js --output ./dist/screen

运行报错与修改后成功

如果 没有装浏览器,会报错

Error: Failed to launch the browser process! /root/.cache/puppeteer/chrome/l

我们直接装下chrome 

成功! 

地址 10.60.100.194: /home/java/mesh/screen/dist

参考文档

nodejs + pkg+ puppeteer 路径问题以及 Passed function is not well-serializable 问题_passed function cannot be serialized!-CSDN博客

#打包 #exe #pkg 使用 pkg 将 nodejs 打包编译为 exe_pkg打包nodejs-CSDN博客

Releases · vercel/pkg-fetch (github.com)

主要是这个工程参考

netwild/screenshots: A small tool based on Nodejs environment, using Puppeter to take full screen screenshots of any webpage (github.com)

安装n需要的更新 :

升级glibc (gcc make等)

 CentOS上升级glibc2.17至glibc2.31_glibc 升级-CSDN博客

相关文章:

【截图服务 +打包】pkg打包 puppeteer

目录 最后结论 windows打包成服务 定制executablePath 服务遇到的问题 使用java开一个线程启动 遇到的问题与解决 版本匹配问题 打出包后的运行报错问题 linux下的安装 安装n 库缺少 程序运行后的报错 制作 运行报错与修改后成功 参考文档 最后结论 pkg -t win…...

深入理解Servlet的并发处理机制小波制图流程图

在Java Web开发中,Servlet是处理HTTP请求的核心组件。理解Servlet如何处理并发请求对于开发高性能Web应用至关重要。本文将深入探讨Servlet的生命周期、实例化过程以及多线程处理机制。 Servlet的生命周期和实例化 Servlet遵循单例模式,对于每个Servle…...

Ajax和XMLHttpRequest之间的关系

Ajax和XMLHttpRequest之间的关系是非常密切的。Ajax(Asynchronous JavaScript and XML)是一种网页开发技术,用于创建交互式的应用程序或网站。而XMLHttpRequest是Ajax的核心技术之一。 XMLHttpRequest:这是一个JavaScript对象&…...

Linxu系统:kill命令

1、命令详解: kill命令是用于向进程发送信号,通常用来终止某个指定PID服务进程,kill命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送 TERM 信号(15)&…...

解决缺少genconfig

编译鸿蒙L0系统时,遇到报错: [OHOS INFO] Returned 127. [OHOS INFO] stderr: [OHOS INFO] [OHOS INFO] env: “genconfig”: 没有那个文件或目录 [OHOS INFO] [OHOS INFO] See //kernel/liteos_m/BUILD.gn:34:1: whence it was imported. [OHOS INFO] …...

百易云资产管理运营系统 house.save.php SQL注入漏洞

1 产品简介 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能,帮助企业…...

【安卓13 源码】Input子系统(3) - EventHub增加设备的流程

由前面的分析知道,在创建inputreader 线程的时候,会去循环执行 looponce 方法。主要的处理工作是: 通过 getEvents() 从 EventHub 获取未处理的事件,这些事件分为两类:一类是原始输入事 件即从设备节点中读取出的原始…...

基于JAVA+SpringBoot+Vue的网上商城系统的设计与实现

基于JAVASpringBootVue的网上商城系统的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#x1…...

Mysql基础练习题 1729.求关注者的数量 (力扣)

编写解决方案,对于每一个用户,返回该用户的关注者数量。 #按 user_id 的顺序返回结果表 题目链接: https://leetcode.cn/problems/find-followers-count/description/ 建表插入语句: Create table If Not Exists Followers(us…...

【鸿蒙HarmonyOS NEXT】页面和自定义组件生命周期

【鸿蒙HarmonyOS NEXT】页面和自定义组件生命周期 一、环境说明二、页面和自定义组件生命周期三、示例代码加以说明四、小结 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面和自定义组件生命周期 需要明确几个概念: 页面…...

Node.js Express 框架

Node.js Express 框架 介绍 Express 是一个快速、开放、极简的 Node.js Web 框架。它为构建 Web 应用程序和服务提供了一个强大的工具集,使得开发过程更加高效和便捷。Express 的设计哲学是提供一个最小的 API,让开发者可以轻松地构建自定义的 Web 应用程序。它被广泛用于构…...

生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute

可以录音播放的生日贺卡与传统的纸质贺卡相比,它有着创意以及个性的特点,仅需少量的电子元器件,即可实现录音功能,搭配上文字,让声音存储在生日贺卡里,让贺卡也变得有温度,祝福我想亲口对TA说。…...

电影《西施新传》首映礼,九月金秋全国正式公映

2024年9月1日,古装谋略情感影片《西施新传》在无锡大世界影城中山路IMAX激光店举办首映礼。电影《西施新传》根据作家沈雅琴、笔名一蝶的同名小说改编,以家喻户晓四大美人之首的西施为主人公,讲述了春秋末期吴越战争的故事。越国败于吴国&…...

【H2O2|全栈】关于CSS(1)CSS基础(一)

目录 CSS基础知识 前言 准备工作 啥是CSS? 如何引用CSS? 选择器 通配符选择器 类名(class)选择器 id选择器 CSS解析顺序(优先级) 常见CSS标签(一) 字体属性 font-style…...

动态规划算法之背包问题详细解读(附带Java代码解读)

动态规划中的背包问题(Knapsack Problem)是经典问题之一,通常用来解决选择一组物品放入背包使得背包的价值最大化的问题。根据问题条件的不同,背包问题有很多种变体,如0-1背包问题、完全背包问题、多重背包问题等。这里…...

Vue3+TypeScript二次封装axios

安装如下 npm install axios 第一步:创建config配置文件,用于存放请求后端的ip地址,用于后期打包后便于修改ip地址。 注:typescript要求参数要有类型。(ES6 定义对象 属性 类型 修改的是属性的值) inte…...

华为 HCIP-Datacom H12-821 题库 (16)

有需要题库的可以加下方Q群 V群进行学习交流 1. OSPF 邻居关系建立出现故障,通过 display ospf error 命令来检查,输出结果如图所示,根据图中内容分析,邻居建立失败的原因可能是以下哪一项? A、Process ID 不一致 B、…...

【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs

今天在COMPASS分享了之前写的一个博客,做了进一步的提炼总结,大家可以看看原文~ 今天分享的论文《sNPU: Trusted Execution Environments on Integrated NPUs》来自2024年ISCA,共同一作为Erhu Feng以及Dahu Feng。并且, 这两位作…...

MyBatis 入门之动态 SQL

文章目录 一、什么是动态 SQL二、MyBatis 中的动态 SQL 标签三、动态 SQL 的使用示例四、总结 在 Java 开发中,MyBatis 是一个非常流行的持久层框架,它提供了强大的 SQL 映射功能和动态 SQL 支持。动态 SQL 可以根据不同的条件动态地生成 SQL 语句&#…...

软工大二学生待办事项:

该文章会常年更新!坚持! 2024.9.10 学习打包部署 记录睡眠 开始刷一个算法 巩固Git版本控制工具的使用 巩固利用Idea使用版本管理工具,SQl编写 抓紧时间了解公司营业执照 坚持到周末再打瓦!...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...