Electron Build Windows文件夹结构

时间:2017-10-12 09:21:17

标签: 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 --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文件的最佳方法是什么?

1 个答案:

答案 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();
    });
});