различать make и package в конфигурации Electron Forge

#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.