Problem: podczas programowania za pomocą Electron, gdy próbujesz użyć dowolnej wtyczki JS, która wymaga jQuery, wtyczka nie znajduje jQuery, nawet jeśli załadujesz właściwą ścieżkę za pomocą znaczników skryptu.
Na przykład,
<body>
<p id="click-me">Click me!</p>
...
<script src="node_modules/jquery/dist/jquery.min.js"></script> //jQuery should be loaded now
<script>$("#click-me").click(() => {alert("Clicked")});</script>
</body>
Uruchomienie powyższego kodu nie zadziałałoby. W rzeczywistości otwórz DevTools, przejdź do widoku konsoli i kliknij <p>
element. Powinieneś to zobaczyć function $ is not defined
lub coś w tym celu.
require
funkcji elektronowej ?Odpowiedzi:
Lepsze i bardziej ogólne rozwiązanie IMO:
Korzyści
node-integration
fałszuźródło tutaj
źródło
window.module
zaczyna się od tej samej wartości comodule
, więc twój kod nie działa tak jak powinien. Właściwy sposób to zrobićmodule
, zamiast tego zapisać w innej (nieużywanej) właściwości okna, takiej jakwindow.tempModule
. Aby potwierdzić to, co mówię, spróbujconsole.log(module)
po ostatnim stwierdzeniu, aby to teraz zweryfikowaćmodule === undefined
.Jak widać na https://github.com/atom/electron/issues/254 problem jest spowodowany przez ten kod:
Kod jQuery „widzi”, że działa w środowisku CommonJS i ignoruje
window
.Rozwiązanie jest naprawdę łatwe , zamiast ładować jQuery
<script src="...">
, powinieneś załadować w następujący sposób:Uwaga: kropka przed ścieżką jest wymagana , ponieważ wskazuje, że jest to katalog bieżący. Pamiętaj również, aby załadować jQuery przed załadowaniem jakiejkolwiek innej wtyczki zależnej od tego .
źródło
'node-integration': false
jako opcja dlaBrowserWindow
.Innym sposobem pisania
<script>window.$ = window.jQuery = require('./path/to/jquery');</script>
jest:źródło
odpowiedź na najczęściej zadawane pytania dotyczące elektronów:
http://electron.atom.io/docs/faq/
źródło
Właśnie natknąłem się na ten sam problem
npm install jquery --save
<script>window.$ = window.jQuery = require('jquery');</script>
pracował dla mnie
źródło
Możesz umieścić
node-integration: false
opcje wewnątrz BrowserWindow.na przykład:
window = new BrowserWindow({'node-integration': false});
źródło
Ładne i czyste rozwiązanie
npm install jquery --save
)<script> let $ = require("jquery") </script>
źródło
Mam ten sam problem i to zadziałało dla mnie!
Zainstaluj jQuery przy użyciu npm
Następnie dołącz jQuery na jeden z poniższych sposobów.
źródło
przed zaimportowaniem jquery i gotowe. więcej informacji tutaj .
źródło
Myślę, że rozumiem twoją walkę, rozwiązałem ją trochę inaczej. Użyłem programu ładującego skrypty dla mojego pliku js, który zawiera jquery. Program ładujący skrypt bierze twój plik js i dołączając go do górnej części pliku vendor.js zrobił mi magię.
https://www.npmjs.com/package/script-loader
po zainstalowaniu modułu ładującego skrypt dodaj go do pliku rozruchowego lub aplikacji.
import 'script! path / your-file.js';
źródło
ok, oto inna opcja, jeśli chcesz krewnego to ...
źródło
Jeśli używasz Angular2, możesz utworzyć nowy plik js z tym kodem:
i umieść go zaraz za ścieżką jquery, w .angular-cli.json:
źródło
im building i Angular App z elektronem, moje rozwiązanie było następujące:
Więc Jquery jest ładowany z angular.json, jeśli jest w przeglądarce, w przeciwnym razie, jeśli jest to aplikacja zbudowana na elektronach, będzie wymagać modułu.
Jeśli chcesz zaimportować jquery do index.html zamiast importować z angular.json, skorzystaj z następującego rozwiązania:
źródło
pracował dla mnie przy użyciu następującego kodu
źródło
1. Zainstaluj jQuery za pomocą npm.
2)
źródło
To działa dla mnie.
Rzeczy do rozważenia:
1) Umieść to w sekcji tuż przed
</head>
2) Dołącz Jquery.min.js lub Jquery.js tuż przed
</body>
tagiemźródło
możesz wypróbować następujący kod:
źródło
W przypadku tego problemu użyj JQuery i innych js tak samo, jak na stronie sieci Web. Jednak Electron ma integrację węzłów, więc nie znajdzie obiektów js. Musisz ustawić,
module = undefined
aż obiekty js zostaną poprawnie załadowane. Zobacz poniższy przykładPo zaimportowaniu, tak jak podano, będziesz mógł używać
JQuery
innych rzeczy w elektronie.źródło
Wystarczy zainstalować Jquery za pomocą następującego polecenia.
Następnie proszę wstawić linię do pliku js, którego chcesz użyć Jquery
źródło