@lastos/setup-utils v1.10.0
安装包自动构建工具
安装
yarn add @lastos/setup-utils -D
使用
- 新建
setup.js
文件,传入需要传入的配置,参考下面的配置
const path = require('path');
const generateSetup = require('@lastos/setup-utils');
const pkg = require('../package.json');
generateSetup({
// 包名
appName: 'lightapp-launcher',
// 包的唯一ID,不能与其他包相同,不然安装时会覆盖其他应用
appId: 'b756a0c0-b3b2-4048-8469-0bf5d91ead5a',
// 安装后显示的名字
language: {
en: 'launcher',
zh_cn: 'launcher',
zh_hk: 'launcher',
},
// 必填,安装包输出的目录,绝对路径
output: path.resolve(__dirname, '../output'),
// 必填,静态资源打包后的路径,绝对路径
artifactPath: path.resolve(__dirname, '../dist'),
// 非必填,版本号,不填,则自动拿package.json的版本
version: pkg.version,
// windows安装包,传入此项,则编译出exe包
nsis: {
registry: {
install: [
'WriteRegStr "${PRODUCT_ROOT_KEY}" "SOFTWARE\\${PRODUCT_PUBLISHER}\\AppManager" "com.cvte.maxhub.launcher" "Dreadnaught LastContainer"',
],
unInstall: [
'DeleteRegValue "${PRODUCT_ROOT_KEY}" "SOFTWARE\\${PRODUCT_PUBLISHER}\\AppManager" "com.cvte.maxhub.launcher"',
]
},
},
// Linux的安装包,传入此项,则编译deb包
deb: {
iconSize: 48,
desktop: {
"X-Cvte-Toolbar-Icon": "",
"X-Cvte-Toolbar-Gadget": false,
"X-Cvte-Toolbar-Icon-Level": 1,
"X-Cvte-Toolbar-Icon-Location": 2,
"X-Cvte-Toolbar-Hidden": false,
"X-Cvte-Toolbar-Gadget-New": false,
"X-Cvte-AppId": 'com.cvte.maxhub.launcher',
"X-Cvte-AppVersion": addVersion(pkg.version),
"NoDisplay": true
}
},
// 上传artifactory
artifactory: {
url: 'https://artifactory.gz.cvte.cn/artifactory',
// btoa('user:password'),base64的用户名:密码,可以手动写死base64的token
token: '',
},
// windows安装包签名,签名文件需要自带,密码自带
sign: {
file: path.resolve(__dirname, './xxx.pfx'),
password: '',
}
})
- 在
package.json
上添加一个新的脚本
"setup": "node jenkins/setup.js"
- 然后在Jenkinsfile上的配置如下:
stage('拉取代码') {
cleanWs()
checkout scm
}
stage('安装依赖') {
sh 'yarn'
}
stage('编译') {
sh "yarn build"
}
stage('发布静态资源') {
archiveArtifacts artifacts: 'dist/**', onlyIfSuccessful: true
}
stage("安装包") {
sh "yarn setup"
}
stage('发布安装包') {
archiveArtifacts artifacts: 'output/**', onlyIfSuccessful: true
}
配置
配置项 | 是否必填 | 说明 |
---|---|---|
appName | 否 | 不填的话,自动取package.json的name属性,应用程序的名称(英文),需与main.js入口文件一致,决定了打出来的安装包的名字 |
appId | 是 | 应用的唯一编号,需与main.js入口文件一致,自己生成一个UUID,必须每个应用都不一样,冲突了会覆盖其他应用 |
output | 是 | 必填,输出安装包的路径,绝对路径 |
artifactPath | 是 | 必填,静态资源的路径,绝对路径 |
language.en | 是 | 应用程序的名称翻译,多语言 - 英文 |
language.zh_cn | 是 | 应用程序的名称翻译,多语言 - 简体中文 |
language.zh_hk | 是 | 应用程序的名称翻译,多语言 - 繁体中文 |
version | 否 | 应用版本,一般获取package.json的version字段即可,不填自动取 |
publisher | 否 | 非必填,windows默认值:MAXHUB,Linux默认值:CVTEr dss-linux@cvte.com,发布者 |
website | 否 | 非必填,windows默认值:www.maxhub.com,Linux默认值:https://www.cvte.com,发布者网站 |
nsis.copyright | 否 | 非必填,默认视臻的版权信息,版权信息 |
nsis.iconPath | 否 | 应用的图标,决定了生成到桌面的快捷方式的图标 |
nsis.shortcutsParams | 否 | 快捷方式启动的带参,如果传入则说明需要生成桌面快捷方式,如:{ operator: 'open', name: 'maxhub-lightapp-timer' } |
nsis.registry.install | 否 | 类型:数组,注册表中install的部分会插入到注册表 |
nsis.registry.unInstall | 否 | 类型:数组,注册表中unInstall的部分会插入到注册表 |
nsis.beforeInstall.install | 否 | 类型:数组,安装包安装之前执行的任务 |
nsis.beforeInstall.uninstall | 否 | 类型:数组,安装包卸载之前执行的任务 |
nsis.resourcesDir | 否 | 默认值:LightAppRendersResources,类型:字符串,安装包的安装目录,为了可以兼容带MAXHUB的路径 |
deb.icon_size | 否 | 图标大小,16的倍数 |
artifactory.url | 否 | artifactory的地址 |
artifactory.token | 否 | artifactory的令牌,base64的用户名:密码,可以手动写死base64的token |
sign.file | 否 | windows的签名文件,绝对路径,通常是一个pfx文件 |
sign.password | 否 | windows签名的密码 |
编译环境
Mac
- Deb编译:
通过安装brew
安装dpkg
$ brew install dpkg
- Exe编译:
已适配,但是无法使用签名工具,建议最终编译服务器使用windows
Windows
- Exe编译:
完美支持
- Deb编译:
下载安装 wpkg 工具,加入环境变量,C:\WPKG\bin
,就可以完美支持了
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago