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('