Electron 可选择在生产构建应用程序上加载“electron-debug”

Electon optionally load `electron-debug` on a production built app

我发现 this 插件为我提供了一些有用的实用程序,但我不想作为我构建的应用程序的生产依赖性,因此我将其安装为:

npm install --save-dev electron-debug

如果我把它像那样放在我的代码中,我假设我的生产构建不会 运行 因为这个依赖关系不存在:

require('electron-debug')();

那么我如何才能 "optionally" 加载它并默默地抑制任何错误并继续而不会有太多麻烦?

还提到了 here :

Only runs when in development, unless overridden by the enabled option.

但是如果我使用 --save 而不是 --save-dev 我假设依赖项也将安装在我的生产构建应用程序上,一个仅用于调试的依赖项,这有点糟糕.

您假设它不会包含在您的生产版本中是正确的。所以你需要一种方法来知道模块是否可用。

this answer, Stijn de Witt 中提供了一种方法:

// See  by Stijn de Witt
function moduleAvailable (name) {
    try {
        require.resolve (name);
        return true;
    } catch (e) {
        // empty
    }

    return false;
}

// Query for your particular module
if (moduleAvailable ("electron-debug")) require ("electron-debug") ();

我不太确定,但它有可能也适用于打包的(例如 electron-packager)您的应用程序构建。