Electron构建Windows文件夹结构
给出了一个在电子方面的应用。文件夹结构类似于:Electron构建Windows文件夹结构,electron,Electron,给出了一个在电子方面的应用。文件夹结构类似于: App - assets -models - exe files index.html main.js 在按照站点的建议执行构建时,输入以下命令: electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds
App
- assets
-models
- exe files
index.html
main.js
在按照站点的建议执行构建时,输入以下命令:
electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="Electron Tutorial App"
electron v.1.7.9正确创建了构建,但是它位于release builds/resources文件夹app.asar文件中,因此my models文件夹中的所有内容都变得不可访问。此文件夹中有应按需运行的.exe文件
然后,系统在以下url中查找文件:parth_do_projeto/resources/app.asar/assets/models/,也就是说,它认为app.assar是一个文件夹,但在app.asar构建之后是一个文件
由于原始文件夹中存在.exe文件,app.asar无法吸收可执行文件
我保存这些.exe文件的方式是什么?如果您在没有--asar参数的情况下构建构建,则程序工作正常,输入,所有my project文件夹/源代码都将公开
我的问题是,生成生成版本、保持代码关闭并使用.exe文件的最佳方法是什么?您的问题的简短答案是在electron packager内部的asar选项中使用
unpackDir
选项。下面是一个可能的示例:
'use strict';
... ...
var packager = require('electron-packager');
var electronPackage = require('electron/package.json');
var pkg = require('./package.json');
// pull the electron version from the package.json file
var electronVersion = electronPackage.version;
... ...
var opts = {
name: pkg.name,
platform: 'win32',
arch: 'ia32', // ia32, x64 or all
dir: './', // source location of app
out: './edist/', // destination location for app os/native binaries
ignore: config.electronignore, // don't include these directories in the electron app build
icon: config.icon,
asar: {unpackDir: config.excludeFromASAR}, // compress project/modules into an asar blob excluding some things.
overwrite: true,
prune: true,
electronVersion: electronVersion , // Tell the packager what version of electron to build with
appCopyright: pkg.copyright, // copyright info
appVersion: pkg.version, // The version of the application we are building
win32metadata: { // Windows Only config data
CompanyName: pkg.authors,
ProductName: pkg.name,
FileDescription: pkg.description,
OriginalFilename: pkg.name + '.exe'
}
};
// Build the electron app
gulp.task('build:electron', function (cb) {
console.log('Launching task to package binaries for ' + opts.name + ' v' + opts['appVersion']);
packager(opts, function (err, appPath) {
console.log(' <- packagerDone() ' + err + ' ' + appPath);
console.log(' all done!');
cb();
});
});
“严格使用”;
... ...
var包装机=要求(“电子包装机”);
var electronPackage=require('electron/package.json');
var pkg=require('./package.json');
//从package.json文件中提取electron版本
var electronVersion=electronPackage.version;
... ...
变量选项={
名称:pkg.name,
平台:“win32”,
拱门:“ia32'、//ia32、x64或全部
目录:'./',//应用程序的源位置
out:“./edist/”,//应用程序操作系统/本机二进制文件的目标位置
ignore:config.electronignore,//不要在electron应用程序构建中包含这些目录
图标:config.icon,
asar:{unpacdir:config.excludeFromASAR},//将项目/模块压缩到asar blob中,排除某些内容。
改写:对,
李子:是的,
electronVersion:electronVersion,//告诉包装商使用哪个版本的electron进行构建
appCopyright:pkg.copyright,//版权信息
appVersion:pkg.version,//我们正在构建的应用程序的版本
Win32元数据:{//仅限Windows配置数据
公司名称:pkg.authors,
产品名称:pkg.name,
FileDescription:pkg.description,
原始文件名:pkg.name+'.exe'
}
};
//构建电子应用程序
吞咽任务('build:electron',function(cb){
log('为'+opts.name+'v'+opts['appVersion']启动打包二进制文件的任务);
打包机(选项、功能(错误、应用路径){
console.log('