我正在使用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
文档中提到:
您可以通过设置ELECTRON_IS_DEV强制开发模式 环境变量为1。
但是我不认为将变量设置为零是必要的。
输出process.env.ELECTRON_IS_DEV
的日志未定义。
我发现以下令人困惑的线程:https://github.com/electron/electron/issues/7714
在启动时设置NODE_ENV时,我看不到使用额外的环境变量...除非有令人信服的理由,否则我将仅检查process.env.NODE_ENV
至。
答案 0 :(得分:0)
我不使用该npm软件包,但我会分享我的工作-(不知道它是对还是错,但它可以工作。我在开发过程中使用它运行electron-reload
)。
package.json –在“开始”脚本中设置环境变量
"scripts": {
"start": "APP_DEV=true electron ."
}
main.js -检查“ main.js”中的env变量
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'))
});
}
答案 1 :(得分:0)
我注意到开发中的process.env
变量包含有关生产构建中不存在的npm_package的信息。
检查process.env.npm_node_execpath
会给我有关生产或开发的信息。