检索或指定电子生成器中的输出文件名
Retrieve or Specify output file name in electron-builder
我正在以编程方式使用electronic -builder生成安装包。到目前为止,我使用以下工具为当前操作系统类型创建安装包:
const packagejson = require("../package.json");
const builder = require("electron-builder");
const Platform = builder.Platform;
function buildPromise(){
//Development package.json
const devMetadata = packagejson.electronBuilder;
//Application package.json
const appMetadata = {
name: packagejson.name,
version: packagejson.version,
description: packagejson.description,
author: packagejson.author,
productName: packagejson.productName
};
//Build for the current target and send back promise
return builder.build({
projectDir: "./",
devMetadata,
appMetadata
});
}
module.exports = {
buildPromise,
outputPath : packagejson.electronBuilder.directories.output
};
它所做的是从应用程序的主package.json
文件中拉入所需的元数据,该文件包含此部分(因此应用程序的package.json
为空):
...
"electronBuilder": {
"build": {
"productName": "Node App",
"appId": "my.id",
"asar": false,
"win": {
"iconUrl": "http://localhost:5000/images/logo-multi.ico",
"target": "nsis"
},
"nsis" :{
"oneClick": false
}
},
"directories": {
"output": "electron/output",
"app":"electron/app",
"buildResources": "electron/buildResources"
}
}
...
当我在Windows中运行构建时,我得到一个名为Node App Setup 1.0.0.exe
的文件。到此为止。但如何控制最终文件名呢?或者至少以编程方式检索文件名,以便我可以读取它并以某种方式响应客户机?显然,我可以从json文件设置中拼凑出来,但我希望它更明确。
您可以在package.json
的build
部分使用artifactName
指定输出文件名。
文档说工件文件名模板支持${ext}
宏:
除了文件宏之外,还支持${ext}宏。
文件宏
例子您可以在文件模式、工件文件名模式和发布配置url中使用宏:
${arch}
-扩展到ia32
,x64
。如果没有arch,宏将会从你的模式中移除,并带有前导空格,-和_(所以,你不需要担心,可以重用模式)。${os}
-根据目标平台扩展到mac, linux或win。${name}
- package。json的名字。${productName}
-消毒产品名称。${version}
- from package.json${channel}
-从版本(例如beta)检测到预发布组件。${env.ENV_NAME}
-任何环境变量。
AppInfo的任何属性(例如buildVersion, buildNumber)
"build": {
"appId": "com.electron.app.my",
"artifactName": "node-app-${version}.${ext}",
...
},
如果你的包版本是1.0.0,Windows目标将输出:
node-app-1.0.0.exe
应我的要求,作者将其添加到当前版本(8.5.1):
https://github.com/electron-userland/electron-builder/issues/899现在我们可以输入:
builder.build()
.then(paths => {
//paths contains an array of export file paths, e.g.:
console.log(paths[0]); //= c:/MyProject/dist/My Project Setup 1.0.0.exe
console.log(paths[1]); //= c:/MyProject/dist/myproject-1.0.0-x86_64.AppImage
});
- 在JavaScript中输出转义字符
- TableExport jquery插件:文件名和扩展名问题
- 如何在jQuery中将函数的输出分配给变量
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- 通过javascript下载文件时设置文件名
- Javascript,输出结果后页面不断刷新
- Datetime格式为Friendly Time.Moment JS输出错误
- 如何将angularjs中的javascript字符串输出为循环数组
- HTML5FileReader输出到D3.js图表
- console.log以外的Javascript输出函数
- gulp/webpack任务的输出文件名
- 从流播放器输出当前剪辑文件名或 URL
- 通过画布从 svg 或 svg 输出 300 张具有正确文件名的 png 图像
- phantomjs render_multi_url.js修改输出文件名
- 指定不同的输出目录,随机文件名- UglifyJS with Symfony2
- 检索或指定电子生成器中的输出文件名
- 在RequireJs中,我如何指示优化器生成散列输出文件名
- VS 2013 web essentials js bundle忽略输出文件名
- Grunt -修改输出文件名
- 将输出图像保存到另一个目录中,并使用新的文件名和扩展名