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
)您的应用程序构建。
我发现 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
)您的应用程序构建。