2017-07-24 44 views
10

Buduję aplikację z Electronem i pakuję z Electron Builderem. Kiedy pracuję elektronem, chcę przekazać to command line argument: --enable-mixed-sandbox.Jak przekazać argument do elektronu przy użyciu elektron-buildera?

Czy to możliwe? W jaki sposób?

to:

app.commandLine.appendSwitch('enable-mixed-sandbox') 

nie będzie działać due to:

Należy pamiętać, że to nie wystarczy, aby wywołać app.commandLine.appendSwitch ('- enable-piaskownicy'), jak Kod uruchomienia elektronu/węzła jest uruchamiany po wprowadzeniu zmian w ustawieniach piaskownicy dla chromu . Przełącznik musi być przekazywana do elektronów na linia poleceń:

electron --enable-sandbox app.js 

Nie jest możliwe, aby mieć piaskownicę aktywny tylko dla niektórych renderujących OS, jeśli --enable-sandbox jest włączona, normalne okna elektronów nie może bądź kreatywny.

+0

Przypuszczam, że najprostszym sposobem jest edycja skrótu tak, że uruchamia się z tej opcji. Nie wiem jednak, jak to zrobić programowo. – SwiftsNamesake

+0

https://github.com/electron-userland/electron-builder/issues/1905 – SwiftsNamesake

+0

@SwiftsNamesake te argumenty nie docierają do elektronów, o ile wiem. Czy wiesz inaczej? – Pablo

Odpowiedz

0

Można użyć app.commandLine.appendSwitch w aplikacjach główny skrypt (ten, który otwiera okno Electron)

Przykład przełącznika byłoby

 

    app.commandLine.appendSwitch('enable-mixed-sandbox') 

+0

Do czasu uruchomienia tej linii jest już za późno na tę opcję. Jest to gdzieś w dokumentacji o piaskownicy (jestem teraz na komórce). – Pablo

-1

mam a response w tej kwestii podniosłem i powiązane z komentarzem:

app.enableMixedSandbox() // Experimental macOS Windows 

Zobacz here do zrobienia dokumentacja.

+0

@Pablo edytowane, całkowicie nowa odpowiedź – SwiftsNamesake

-1

Innym sposobem na to, możesz użyć spectron, aby uruchomić aplikację w trybie debugowania. co pozwala przekazać dowolne argumenty.

const Application = require('spectron').Application 
 

 
// Returns a promise that resolves to a Spectron Application once the app has loaded. 
 
// Takes a Ava test. Makes some basic assertions to verify that the app loaded correctly. 
 
function createApp (t) { 
 
    return new Application({ 
 
    path: 'path/to/app', 
 
    args: ['-r', '--enable-mixed-sandbox'], 
 
    env: {NODE_ENV: 'test'}, 
 
    waitTimeout: 10e3 
 
    }) 
 
}

https://github.com/electron/spectron#new-applicationoptions

+0

Jak to działa z budowniczym elektronów do dystrybucji aplikacji? Mogę przekazać dowolny argument, który chcę w trybie deweloperskim, to nie jest problem. Problemem jest .exe generowany przez producenta elektronów. – Pablo

+0

cóż Nie sądzę, że można przekazać sandbox dla aplikacji z pakietem ze względów bezpieczeństwa. jak elektron wspomniany w dokumentach _Każdy błąd w silniku V8 może pozwolić złośliwemu kodowi na dostęp do mechanizmów wstępnego ładowania renderera, skutecznie przyznając pełny dostęp do systemu poprzez zdalny moduł._ sprawdź to [link] (https://stackoverflow.com/ a/34742370/6942552) również może wyjaśnić nieco więcej. – Necmttn