electron builder 创建license页面

565 阅读4分钟

electron builder 创建 license 协议页面

1. 创建一个 license_zh.txt 或者 license_zh.rtf 文件

license_zh.txt 与 license_zh.rtf 区别是 .rtf (Rich Text Format)是一种标准的文档文件格式,支持文本格式化,如字体样式和颜色、表格、图片等。以下是创建和编辑 RTF 文件的基本步骤:

使用 Microsoft Word

  1. 打开 Microsoft Word,创建一个新文档。
  2. 输入和格式化你的文本。你可以加粗、斜体、下划线、更改字体大小和颜色等。
  3. 插入图片和链接,如果需要。在 Word 中,你可以通过插入选项来添加图片和创建超链接。
  4. 保存文件为 RTF 格式。点击文件 -> 另存为,选择保存位置,在“另存为类型”下拉菜单中选择“富文本格式(*.rtf)”,然后点击保存。

license_zh.txt 内容如下:

xxx用户服务协议
欢迎使用xxxxxx!
在接受本协议之前请您务必仔细阅读本协议的全部内容,充分理解条款内容,特别是限制或免责条款,将以加粗或其他醒目形式提示您注意。
如果您对本协议的条款有疑问的,请联系相关业务部门讲行询问。除非您已阅读并接受本协议及相关协议、规则等所有条款,否则,您无权使用本服务。
一旦您选择了“同意协议并提交”(具体措辞详见安装页面)并完成安装流程,或您以任何方式使用本服务,即为您已阅读并同意上述协议、规则等的约束。
如果您有违反本协议的任何行为时,深圳市xxx技术有限公司有权根据您违反的情况随时单方采取限制、中止或终止...

2. 引入 license 文件

vue.config.js

nsis: {
    license: path.join(__dirname, 'build/license_zh.rtf'),
}

中文乱码的问题

需要把 license 文件另存为 UTF8 BOM 格式,记事本打开 - 另存为 - 选择 UTF8 BOM 即可

出现打包失败 提示 warning 6030: LicenseLangString "MUILicense" set multiple times for 1028, wasting space

问题:

ExecError: C:\Users\Administrator\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\Bin\makensis.exe process failed ERR_ELECTRON_BUILDER_CANNOT_EXECUTE
Exit code:
1
Output:
Command line defined: "APP_ID=com.xxx.www"
Command line defined: "APP_GUID=d8696759-d69c-xxxx-xxx-1843a969a5d0"
Command line defined: "UNINSTALL_APP_KEY=d8696759-d69c-xxxx-xxx-1843a969a5d0"
Command line defined: "PRODUCT_NAME=�ƴ汦"
Command line defined: "PRODUCT_FILENAME=�ƴ汦"
Command line defined: "APP_FILENAME=xxx"
Command line defined: "APP_DESCRIPTION=�ƴ汦"
Command line defined: "VERSION=1.1.27"
Command line defined: "PROJECT_DIR=C:\Users\Administrator\Documents\electron.app"
Command line defined: "BUILD_RESOURCES_DIR=C:\Users\Administrator\Documents\electron.app\build"
Command line defined: "APP_PACKAGE_NAME=xxx"
Command line defined: "MUI_ICON=C:\Users\Administrator\Documents\electron.app\icons\win\icon.ico"
Command line defined: "MUI_UNICON=C:\Users\Administrator\Documents\electron.app\icons\win\icon.ico"
Command line defined: "APP_64=C:\Users\Administrator\Documents\electron.app\dist_electron\xxx-1.1.27-x64.nsis.7z"
Command line defined: "APP_64_NAME=hificloud-1.1.27-x64.nsis.7z"
Command line defined: "APP_64_HASH=2C90D4A6CE49422C72B4D1B2C9E89C994CB58FEDF3654873C7A3669323CE4DAD582D99B2C5B0F024636F43BC7AED62E6E5C36620842F8E73D11AA7D262B565B5"
Command line defined: "APP_64_UNPACKED_SIZE=504646"
Command line defined: "COMPANY_NAME=HiFiCloud"
Command line defined: "APP_PRODUCT_FILENAME=xxx"
Command line defined: "APP_INSTALLER_STORE_FILE=hificloud-updater\installer.exe"
Command line defined: "COMPRESSION_METHOD=7z"
Command line defined: "MULTIUSER_INSTALLMODE_ALLOW_ELEVATION"
Command line defined: "INSTALL_MODE_PER_ALL_USERS"
Command line defined: "INSTALL_MODE_PER_ALL_USERS_REQUIRED"
Command line defined: "allowToChangeInstallationDirectory"
Command line defined: "SHORTCUT_NAME=xxx"
Command line defined: "DELETE_APP_DATA_ON_UNINSTALL"
Command line defined: "UNINSTALL_DISPLAY_NAME=xxx 1.1.27"
Command line defined: "MUI_WELCOMEFINISHPAGE_BITMAP=${NSISDIR}\Contrib\Graphics\Wizard\nsis3-metro.bmp"
Command line defined: "MUI_UNWELCOMEFINISHPAGE_BITMAP=${NSISDIR}\Contrib\Graphics\Wizard\nsis3-metro.bmp"
Command line defined: "ESTIMATED_SIZE=504646"
Command line defined: "COMPRESS=auto"
Command line defined: "UNINSTALLER_OUT_FILE=C:\Users\Administrator\Documents\electron.app\dist_electron\__uninstaller-nsis-hificloud.exe"
Processing config: C:\Users\Administrator\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1\nsisconf.nsh
Processing script file: "<stdin>" (UTF8)
warning 6030: LicenseLangString "MUILicense" set multiple times for 1028, wasting space (macro:licensePage:2)

Error output:
Error: warning treated as error

    at ChildProcess.<anonymous> (C:\Users\Administrator\Documents\electron.app\node_modules\builder-util\src\util.ts:251:14)
    at Object.onceWrapper (node:events:628:26)
    at ChildProcess.emit (node:events:513:28)
    at ChildProcess.cp.emit (C:\Users\Administrator\Documents\electron.app\node_modules\cross-spawn\lib\enoent.js:34:29)
    at maybeClose (node:internal/child_process:1091:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) {
  exitCode: 1,
  alreadyLogged: false,
  code: 'ERR_ELECTRON_BUILDER_CANNOT_EXECUTE'
}

原因:是 build目录存在 license 开头的.txt或.rtf文件

解决办法:删除 build目录下的license开头的文件,比如 license.txt、license_zh.rtf、license_zh.txt 文件即可