wordpress网站后台,个人网页是什么意思,wordpress amp插件,做视频网站收入使用 pkg 打包 Puppeteer 应用
pkg 是一个非常强大的工具#xff0c;它允许你将 Node.js 项目打包成独立的可执行文件#xff0c;这意味着你可以在没有安装 Node.js 环境的设备上运行该应用。这对于希望分发不暴露源代码的应用程序、创建跨平台的快速演示版本或简化部署流程…使用 pkg 打包 Puppeteer 应用
pkg 是一个非常强大的工具它允许你将 Node.js 项目打包成独立的可执行文件这意味着你可以在没有安装 Node.js 环境的设备上运行该应用。这对于希望分发不暴露源代码的应用程序、创建跨平台的快速演示版本或简化部署流程的开发者来说是一个非常有用的工具。
使用了2天用pkg打包在运行main.exe总提示 Passed function cannot be serialized 错误。后面终止成功运行了。
安装 pkg
首先你需要全局安装 pkg。在你的命令行界面中运行以下命令
npm install -g pkg打包你的 Node.js 项目
使用 pkg 打包你的项目非常简单。首先确保你有一个入口文件例如 index.js。然后在项目目录下运行 pkg 命令
pkg index.js --targetnode16 --platformall --outputmyapp这里的参数解释如下
index.js 是你的入口文件路径。--targetnode16 指定目标 Node.js 版本可以是具体的版本号或 latest。--platformall 打包所有支持的平台或指定具体平台如 linux, win, macos。--outputmyapp 输出文件名前缀生成的文件将是 myapp_*.exe 或相应格式。
package.json的内容
{name: puppeteer-extra,version: 1.0.0,main: dist/bundle.js,scripts: {test: echo \Error: no test specified\ exit 1,build: rollup --config rollup.config.mjs},keywords: [],author: ,license: ISC,description: ,dependencies: {browsers: ^1.0.2,js-yaml: ^4.1.0,puppeteer: ^23.6.0,puppeteer-extra-plugin-recaptcha: ^3.6.8,puppeteer-extra-plugin-stealth: ^2.11.2,yarn: ^1.22.22},bin: {your-app: src/main.js},devDependencies: {rollup/plugin-commonjs: ^28.0.1,rollup/plugin-node-resolve: ^15.3.0,electron: ^33.0.2,electron-builder: ^25.1.8,electron-packager: ^17.1.2,puppeteer-core: ^23.6.0,puppeteer-extra: ^3.3.6,rollup: ^4.24.2,webpack: ^5.95.0,webpack-cli: ^5.1.4},build: {appId: com.example.yourapp,productName: YourApp,win: {target: nsis}},pkg: {scripts: [node_modules/puppeteer-extra-plugin-stealth/**/*]}
}
注意事项
当打包私有依赖或非标准路径的资源时可能需要在 package.json 的 pkg 配置中明确指定脚本和资产路径。对于生产环境考虑安全性需求尤其是 macOS 上的代码签名要求。跨平台打包可能需要额外的设置比如在 Linux 上配置 QEMU 用于模拟其他架构。
使用 pkg 打包 Puppeteer
由于 Puppeteer 是一个庞大的 Node.js 库并且包含二进制文件它并不适合被打包到浏览器环境中。但是如果你确实需要在浏览器环境中使用某些 Puppeteer 功能你可以使用 puppeteer-core它是 Puppeteer 的一个轻量级版本不包含自动下载的浏览器。
在使用 pkg 打包包含 puppeteer-core 的项目时你可能会遇到路径问题或序列化问题。为了解决这些问题你可以在 pkg 命令中添加 --public 参数这将帮助你正确地序列化传递的函数
pkg index.js -twin --public–public很重要不加上会出现下面的错误 Passed function cannot be serialized!如果在运行pkg时提示有下载fetched-v18.5.0-win-x64,网上的教程下载fetched-v18.5.0-win-x64都不对我花了2天时间都没有成功。后面来硬的找人用科学上网下载成功了。
此外确保你的 Puppeteer 配置正确特别是 executablePath 参数这将指向你的 Chrome 可执行文件路径。如果你在不同平台上打包确保为每个平台指定正确的浏览器路径。
通过上述步骤你可以成功地使用 pkg 打包你的 Node.js 项目包括使用 Puppeteer 或 puppeteer-core 的应用。这将使你的应用在不同环境中更加易于部署和运行。