1
我正在構建一個Atom電子應用程序。現在我有這個在我的網頁視圖之一preload.js:電子:加載外部腳本並將其傳遞給函數
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();
它得到當地腳本,然後在後臺進程中執行它。
我想要做同樣的事情,但我想從外部源檢索腳本像這樣
work = requireTaskPool(require.resolve('https://ex.com/path/to/js/file.js'));
當我這樣做,我得到這樣的錯誤:
Uncaught Error: Cannot find module 'https://ex.com/path/to/js/file.js'
我如何加載外部腳本?然後用我的work
函數使用加載的腳本。我的感覺是,只需要使用本地文件。如果AJAX是答案,我可以看到如何獲取腳本的示例,然後將它傳遞到我的work
而不執行它之前?
謝謝你,這是難以置信的幫助。不過,我希望Electron即使在最終打包的應用程序中也能獲取外部js文件。這樣可以在我的服務器上編輯文件,並且每當用戶重新啓動應用程序時用戶都會看到更改,因此無需更新!也許這是不可能的,但如果你有任何想法如何做到這一點,讓我知道:) –
@TMack很遺憾地說,我不太瞭解這種類型的情況。但我認爲這會有所幫助。讓我明確你的要求。你在某個url上有一個名爲x的包。在更新包中的文件時,如果重新啓動電子應用程序,則應該應用新的更改。如果我是正確的,那麼看看我的答案。這裏最簡單的東西將運行npm install x --save每次運行應用程序之前。爲了使這個過程自動化,把npm install x --save放在你的package.json文件的啓動腳本中 – Vishal