Electron 电子封装器和gloabl电子模块

Electron 电子封装器和gloabl电子模块,electron,electron-packager,Electron,Electron Packager,我已经安装了electron和electron packager,它们都处于全局模式。当我构建我的应用程序时,electron packager搜索本地electron模块。如何强制electron packager使用我安装的global electron模块?简单的回答是,您所描述的不是您“应该”使用electron packager的方式。通常,目的是在您正在处理的项目目录下构建本地包(exe或类似文件)。例如,在Windows平台上构建的电子/角度项目可能具有以下类型的结构: C:. +

我已经安装了electron和electron packager,它们都处于全局模式。当我构建我的应用程序时,electron packager搜索本地electron模块。如何强制electron packager使用我安装的global electron模块?

简单的回答是,您所描述的不是您“应该”使用electron packager的方式。通常,目的是在您正在处理的项目目录下构建本地包(exe或类似文件)。例如,在Windows平台上构建的电子/角度项目可能具有以下类型的结构:

C:.
+---ClientSide
¦   +---index.html
¦   +---app
¦   ¦   +---app.component.ts
¦   ¦   +---app.module.ts
¦   ¦   +---main.ts
¦   ¦   +---AppContent/
¦   ¦   +---help/
¦   +---Styles
¦   +---test
¦       +---AppContent/
+---dist/
+---edist
|   \---Application-win32-ia32 [*location of binary source for the install]
+---Installer
    +---Application/
gulpfile.js
karma.conf.js
main.js
package.json
README.md
webpack.config.js
在这种情况下,
package.json
文件通常包含对两个包的引用,如下所示:

.. .. ..
  "devDependencies": {
    "@angular/animations": "4.4.4",
    "@angular/common": "4.4.4",
    "@angular/compiler": "4.4.4",
.. .. ..
.. .. ..
    "electron": "1.7.9",
    "electron-packager": "9.1.0",
.. .. ..
然后在本地
gulpfile.js
中,通常会包含一个调用,以运行引用本地版本electron的打包程序。比如:

'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.electroncompiled}, // compress project/modules into an asar blob but don't use asar to pack the native compiled modules
    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();
    });
});
比如说:

// Use a specific electron version
var electronVersion = '1.7.8';
如果要从命令行运行
electron-packager
,则可以使用与我在这里的API选项中所示相同的所有选项。您可以看到完整的选项列表。在您的情况下,如果使用命令行,则使用“
--electron version
”开关设置所需的electron版本

// Use a specific electron version
var electronVersion = '1.7.8';