#javascript #node.js #electron #electron-forge
#javascript #node.js #electron #electron-forge
Вопрос:
У меня настроен конфигурационный файл Electron Forge с множеством опций, и все это работает автоматически и красиво (спасибо команде Forge !!). Но я обнаружил определенные ситуации, когда я мог бы захотеть обрабатывать голый npm run package
файл иначе, чем полный npm run make
(который, как я понимаю, запускает package
скрипт как часть его процесса). Есть ли какой-либо способ программно определить, было ли package
действие запущено непосредственно из командной строки, а не как часть make
процесса, чтобы я мог вызывать разные параметры конфигурации Forge в зависимости? Например, иногда я просто хочу выполнить быструю сборку для локального тестирования и пропустить некоторые ненужные трудоемкие шаги, такие как нотариальное заверение в macOS и некоторые prePackage
postPackage
функции / hook . В идеале я ищу способ сделать что-то подобное в моем файле конфигурации Forge:
//const isMake = ???
module.exports = {
packagerConfig: {
osxNotarize: isMake ? {appleId: "...", appleIdPassword: "..."} : undefined
},
hooks: {
prePackage: isMake ? someFunction : differentFunction
}
}
Ответ №1:
Вы можете сделать это с помощью process.argv[1]
:
let isMake;
if (process.argv[1].endsWith('electron-forge-make.js') {
isMake = true;
} else {
isMake = false;
}
module.exports = {
// ...
}
При вызове process.argv
он возвращает массив с двумя строками: первая с node.js каталог и второй с каталогом модуля electron forge.
Модуль make заканчивается, electron-forge-make.js
а модуль package заканчивается electron-forge-package.js
. Таким образом, вы можете посмотреть в конец и определить, является ли это package или make.