[英]How to run scripts in index.html in react if you don't have index.html
[英]HTML loads, but scripts don't run
我通過 Parcel 編譯了這個腳本:
import { app, BrowserWindow, Menu } from 'electron';
alert('Hi');
document.title = 'Xxx';
console.log('Hello');
包裹的條目 HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Empty Electron App</title>
</head>
<body>
<script>alert('Aaaaah!');
</script>
<script src="./Main.ts"></script>
</body>
</html>
我正在與 Parcel 捆綁使用:
// ...
const entry = './src/Main.html';
const options = {
outDir: './build',
publicUrl: './',
sourceMaps: false,
autoInstall: false,
hmr: false,
target: 'electron',
};
// ...
(async () => {
// ...
bundler.bundle();
})();
似乎 Electron 沒有運行入口點 HTML 中包含的腳本(不會發出警報,也不會改變頁面標題,也不會登錄到控制台)。 就像我說的, console.log()
不會對運行 Electron 的主機環境終端產生任何影響。 我通過在 HTML 中插入文本節點進一步測試了這一點,如下所示:
<!DOCTYPE HTML>
<html>
<head>
<!-- ... -->
</head>
<body>
Foo foo foo foo foo
</body>
</html>
應用程序成功渲染Foo foo foo foo foo
; 腳本不做任何事情。 我錯過了一些配置嗎?
這里有更多來源:
這是 output HTML 的樣子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<meta http-equiv="X-Content-Security-Policy" content="default-src 'self'; script-src 'self'">
<title>Empty Electron App</title>
</head>
<body>
<script>alert('Aaaaah!');</script>
<script src="Main.d562fc5b.js"></script>
</body>
</html>
文件結構( /build
):
在您的build.js
文件中,將target
選項替換為web
而不是electron
。
更新:我實際上找到了解決您問題的更好方法,因為您可能需要在應用程序中的某個時間使用正確的目標。 見下文:
問題是nodeIntegration
未在BrowserWindow
上啟用,盡管您在選項中指定了它。 這是因為默認情況下contextIsolation
處於啟用狀態,並且這兩個選項不能一起使用。 在構建webPreferences
時在 webPreferences 中添加contextIsolation: false
也應該可以解決您的問題,同時將包裹目標保持為electron
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.