gpt4 book ai didi

javascript - Electron 在生产模式下运行

转载 作者:行者123 更新时间:2023-12-02 22:27:30 25 4
gpt4 key购买 nike

我正在使用 npm 包 https://github.com/sindresorhus/electron-is-dev

出于某种原因,isDev 始终返回 true。

我的 npm 脚本如下所示:

"start:prod": "cross-env NODE_ENV=production && electron dist/main.js"

main.js:

import isDev from 'electron-is-dev';

app.on('ready', () => {
console.log('isDev', isDev);
if (!isDev) {
const {session} = require('electron');
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
callback({responseHeaders: `default-src http: ws:`})
})
}
const win = createWindow();
createMenu(win);
});

控制台输出:

isDev true

文档提到:

You can force development mode by setting the ELECTRON_IS_DEV environment variable to 1.

但我认为没有必要将变量设置为零。

输出process.env.ELECTRON_IS_DEV日志未定义。

我发现以下线程令人困惑:https://github.com/electron/electron/issues/7714

当您在启动时设置 NODE_ENV 时,我没有看到额外环境变量的使用...除非有令人信服的理由不这样做,否则我只会检查 process.env.NODE_ENV 正如我习惯的那样。

最佳答案

我不使用那个 npm 包,但我会分享我所做的 –(不知道它是对还是错,但它有效。我在开发过程中使用它来运行 electron-reload )。

package.json – 在我的“开始”脚本中设置环境变量

  "scripts": {
"start": "APP_DEV=true electron ."
}

main.js - 检查“main.js”中的环境变量

var isDev = process.env.APP_DEV ? (process.env.APP_DEV.trim() == "true") : false;

使用它

if (isDev) {
require('electron-reload')(__dirname, {
electron: upath.toUnix(upath.join(__dirname, 'node_modules', '.bin', 'electron'))
});
}
<小时/>

更新:20 年 4 月 28 日

必须将我的项目转移到 Windows 计算机上才能解决一些特定于 Windows 的问题,而上述方法在那里不起作用。这是我对此的问题以及使其在 Windows 上运行的答案:Setting an env var in package.json for use with electron-reload?

关于javascript - Electron 在生产模式下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com