Ich baue eine Atom Electron App. Im Moment habe ich dies in dem preload.js eines meines WebViews:Electron: Laden eines externen Skripts und Übergabe an eine Funktion
var { requireTaskPool } = require('electron-remote');
var work = '';
var _ = require('lodash');
work = requireTaskPool(require.resolve('./local/path/to/js/file.js'));
function scriptRun() {
console.log('Preload: Script Started');
// `work` will get executed concurrently in separate background processes
// and resolve with a promise
_.times(1,() => {
work(currentTab).then(result => {
console.log(`Script stopped. Total time running was ${result} ms`);
});
});
}
module.exports = scriptRun;
scriptRun();
Es wird eine lokalen Skript und führt sie dann in einem Hintergrundprozess.
Ich mag genau die gleiche Sache tun, außer ich wie so
work = requireTaskPool(require.resolve('https://ex.com/path/to/js/file.js'));
das Skript von einer externen Quelle abgerufen werden soll, wenn ich dies tun, ich Fehler wie bekommen:
Uncaught Error: Cannot find module 'https://ex.com/path/to/js/file.js'
Wie kann ich externe Skripte laden? Und dann benutze die geladenen Skripte mit meiner work
Funktion. Mein Gefühl ist, dass nur mit lokalen Dateien arbeiten funktioniert. Wenn AJAX die Antwort ist, kann ich ein Beispiel sehen, wie man ein Skript erhält, und es dann an meine work
übergeben, ohne es vorher auszuführen?
Danke das ist unglaublich hilfreich. Allerdings hätte ich gerne Electron die externe js-Datei auch in der endgültigen verpackten App greifen. Dies wäre so, dass ich die Datei auf meinem Server bearbeiten kann und die Benutzer sehen die Änderungen, wenn sie die App neu starten, also keine Notwendigkeit zu aktualisieren! Vielleicht ist das nicht möglich, aber wenn du eine Idee hast, wie das geht, lass es mich wissen :) –
@TMack Entschuldigung, dass ich nicht viel über diese Art von Umständen weiß. Aber ich denke, das wird hilfreich sein. Lassen Sie mich Ihre Anforderungen klären. Sie haben ein Paket namens x auf einer URL. Wenn Sie eine Datei im Paket aktualisieren und die Elektronen-App neu starten, sollten Sie neue Änderungen anwenden. Wenn ich richtig liege, dann schau dir meine Antwort an. Die einfachste Sache hier wird npm install x --save jedes Mal vor dem Ausführen der App ausgeführt werden. Um diesen Prozess zu automatisieren, geben Sie npm install x --save in Ihr Startscript Ihrer package.json-Datei ein – Vishal