鉴于电子申请。文件夹结构如下所示:
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"
电子v.1.7.9正确地创建了构建,但是它在release-builds / resources文件夹中的app.asar文件中,因此我的models文件夹中的所有内容都变得无法访问。在这个文件夹里面是应该按需运行的.exe文件。
系统然后在以下网址中查找文件:parth_do_projeto / resources / app.asar / assets / models /,也就是说,它认为app.assar是一个文件夹,但在app.asar构建之后是一个文件。
由于原始文件夹中有.exe文件,app.asar无法吸收可执行文件。
我保留这些.exe文件的方式是什么?如果您在没有--asar参数的情况下构建构建,程序正常工作,请输入,我的所有项目文件夹/源代码都会公开。
我的问题是生成构建,保持代码关闭以及使用.exe文件的最佳方法是什么?
答案 0 :(得分:0)
您的问题的简短回答是在electron-packager中使用unpackDir
选项作为asar选项。以下是这可能是什么的示例:
'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();
});
});