Согласно это невозможно установить флаги в электронном приложении с переменными среды.Мне все еще нужно создать разные версии приложения для dev, staging, pilot и prod.
Внутренне я хотел бы использовать electron-node-config
, потому что это просто.Но поскольку у меня нет доступа к переменным среды, невозможно использовать node-config
.
. Поэтому я подумал о наличии нескольких сценариев ввода, таких как
// index.dev.js
require('./main')({ APP_URL: 'localhost:8080' });
// index.staging.js
require('./main')({ APP_URL: 'https://staging.foo.com' });
// pilot.staging.js
require('./main')({ APP_URL: 'https://pilot.foo.com' });
Где выглядит мой файл main.js
более или менее как этот
module.exports = (config) => {
app.on('ready', () => {
mainWindow.loadURL(config.APP_URL);
});
};
Однако в документах для электронных строителей, кажется, нет опции для указания файла ввода, он всегда использует index.js
для упаковкиприложения, и не так много написано в документации для js api, кроме
const builder = require('electron-builder');
const env = process.env.NODE_ENV;
const entry = `index.${env}.js`;
builder.build({
entry,
appId: 'com.electron.foo',
productName: 'foo',
mac: {
target: 'zip'
},
win: {
target: 'portable'
},
portable: {
artifactName: 'foo.exe'
}
});
Поэтому я попытался настроить свой package.json следующим образом
"scripts": {
"build:staging": "NODE_ENV=development node scripts/build",
"build:pilot": "NODE_ENV=pilot node scripts/build",
"build:production": "NODE_ENV=production node scripts/build"
}
Однако яЯ действительно не уверен, как установить входной файл для конфигурации электронного строителя.Как мне указать входной файл?