pkg打包exe图标

在此教程中,我们将讨论如何使用 pkg 工具将 Node.js 项目打包成可执行文件(.exe), 同时设置自定义图标。pkg 是一个流行的工具,能够跨平台将 Node.js 项目打包成一个独立的二进制可执行文件。

**安装 pkg**

首先,您需要在您的项目中安装 pkg。转到命令行或终端,并转到项目目录。然后,运行以下命令:

```bash

npm install -g pkg

```

这将在全局范围内安装 pkg,以便您可以在其他项目中使用它。

**创建图标文件**

要将自定义图标添加到可执行文件中,您需要两个不同的文件格式:`.ico`(适用于 Windows)和`.icns`(适用于 macOS)。你可以使用在线工具或任何偏好的图像编辑器将图像转换成这两种格式。请注意,对于Windows,最常用的文件大小是 16x16, 32x32, 48x48, 和 256x256 像素。而对于 macOS,建议使用 16x16 到 1024x1024 像素不等的多分辨率 `.icns` 文件。将生成的 `.ico` 和 `.icns` 文件放在项目目录中。例如,可以将它们命名为 "my-icon.ico" 和 "my-icon.icns"。

**使用 resourcehacker 修改 Windows 图标**

由于 pkg 本身不支持自定义图标,我们需要使用第三方工具来更改可执行文件的图标。对于 Windows,我们将使用 Resource Hacker(一个流行的免费工具),可以在其官方网站(http://www.angusj.com/resourcehacker/ )上找到。

1. 下载并安装 Resource Hacker。

2. 使用 pkg 生成一个可执行文件。在项目目录的命令行或终端中,输入以下命令:

```bash

pkg -t node14-windows-x64 -o output.exe your-script.js

```

将上述命令中的 "your-script.js" 替换为您的主 Node.js 文件名。

3. 打开 Resource Hacker,然后选择 "File" > "Open",打开生成下来的 ".exe" 文件。

4. 在左侧的目录树中,展开 "Icon" 分组,其中可能包含多个图标。

5. 对于每个图标,右键点击它,选择 "Replace Icon...",然后选择你的 `.ico` 文件。确保所有的图标都已替换。

6. 点击右上角的绿色保存图标或 "File" > "Save" 保存更改。

现在,你的可执行文件应该显示你替换的图标了。需要注意的是,这仅适用于 Windows 可执行文件。

**使用 iconutil 修改 macOS 图标**

对于 macOS,我们将使用macOS中自带的 iconutil 工具将 `.icns` 图标应用到可执行文件上.

1. 使用 pkg 为 macOS 生成可执行文件:

```bash

pkg -t node14-macos-x64 -o output-macos your-script.js

```

将上述命令中的 "your-script.js" 替换为您的主 Node.js 文件名。

2. 在终端中,转到您的项目目录,并运行以下命令(确保将 "output-macos" 替换为您的实际可执行文件名,以及将 "my-icon.icns" 替换为您的实际图标文件名):

```bash

mkdir output-macos.iconset

sips -z 16 16 my-icon.icns --out output-macos.iconset/icon_16x16.png

sips -z 32 32 my-icon.icns --out output-macos.iconset/icon_16x16@2x.png

sips -z 32 32 my-icon.icns --out output-macos.iconset/icon_32x32.png

sips -z 64 64 my-icon.icns --out output-macos.iconset/icon_32x32@2x.png

sips -z 128 128 my-icon.icns --out output-macos.iconset/icon_128x128.png

sips -z 256 256 my-icon.icns --out output-macos.iconset/icon_128x128@2x.png

sips -z 256 256 my-icon.icns --out output-macos.iconset/icon_256x256.png

sips -z 512 512 my-icon.icns --out output-macos.iconset/icon_256x256@2x.png

sips -z 512 512 my-icon.icns --out output-macos.iconset/icon_512x512.png

sips -z 1024 1024 my-icon.icns --out output-macos.iconset/icon_512x512@2x.png

iconutil -c icns output-macos.iconset

mv output-macos.icns output-macos/Contents/Resources/

```

它会更改 macOS 可执行文件的图标以显示你的自定义图标。

总结一下,尽管 pkg 本身不直接支持图标定制,但我们可以通过第三方工具和 macOS 结合使用它来实现二进制可执行文件的自定义图标。这样,您的 Node.js 项目在打包成`.exe` 文件时,用户就能看到您自定义的漂亮图标了。