1.3クイック起動終了
プリロードスクリプトを使用してレンダラにノードを表示します。アクセスjs
最後にしなければならないのは、電子版とWebページの依存性を出力するバージョンです.
この情報にアクセスしたのはノードです.jsグローバルプロセスオブジェクトによるプライマリプロセスでの実行が容易です.ただし、レンダラードキュメントコンテキストにアクセスできないため、メインプロセスでDOMを変更することはできません.それらは全く異なる過程です!
注意:電子プロセスの詳細については、Process Modelのドキュメントを参照してください.
preloadスクリプトを追加すると、レンダラーに簡単にアクセスできます.perloadスクリプトは、レンダラープロセスがロードされる前に実行され、レンダラーグローバルとノードです.すべてのjs環境にアクセスできます.
preload.jsスクリプトの作成:
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const dependency of ['chrome', 'node', 'electron']) {
replaceText(`${dependency}-version`, process.versions[dependency])
}
})
上のコードはNodeです.jsのプロセス.replaceText関数を実行してバージョンオブジェクトにアクセスし、HTMLドキュメントのバージョンを入力します.このスクリプトをレンダラープロセスに関連付けるには、BrowserWindow作成者のwebPreferencesを使用します.プリロードスクリプトのパスをpreloadオプションに渡します.
// include the Node.js 'path' module at the top of your file
const path = require('path')
// modify your existing createWindow() function
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
win.loadFile('index.html')
}
// ...
使用するノードは次のとおりです.jsの2つの概念:追加:Webコンテンツへの機能の追加
この場合、アプリケーションにより多くの機能を追加する方法を知りたい場合があります.
Webコンテンツと対話するために、レンダラープロセスにスクリプトを追加します.レンダラーは通常Web環境で動作するのでindex.htmlファイルを閉じる前に
<script src="./renderer.js"></script>
次にレンダラーjsに含まれるコードは、同じJavaScript APIを使用するか、Webパッケージを使用してコードをパッケージ化したり、折り畳んだり、reactを使用してユーザーインタフェースを管理したりすることができます.要約
すべての手順が正常に完了した場合は、次の電子アプリケーションが表示されます.
すべてのコード:
// main.js
// Modules to control application life and create native browser window
const { app, BrowserWindow } = require('electron')
const path = require('path')
const createWindow = () => {
// Create the browser window.
const mainWindow = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
// and load the index.html of the app.
mainWindow.loadFile('index.html')
// Open the DevTools.
// mainWindow.webContents.openDevTools()
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
// On macOS it's common to re-create a window in the app when the
// dock icon is clicked and there are no other windows open.
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
// Quit when all windows are closed, except on macOS. There, it's common
// for applications and their menu bar to stay active until the user quits
// explicitly with Cmd + Q.
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})
// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
// preload.js
// All of the Node.js APIs are available in the preload process.
// It has the same sandbox as a Chrome extension.
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const dependency of ['chrome', 'node', 'electron']) {
replaceText(`${dependency}-version`, process.versions[dependency])
}
})
<!--index.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>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
We are using Node.js <span id="node-version"></span>,
Chromium <span id="chrome-version"></span>,
and Electron <span id="electron-version"></span>.
<!-- You can also require other files to run in this process -->
<script src="./renderer.js"></script>
</body>
</html>
経験をまとめます.パッケージと導入
Electron Forgeの迅速な導入方法の使用
開発依存項目に
npm install --save-dev @electron-forge/cli
npx electron-forge import
✔ Checking your system
✔ Initializing Git Repository
✔ Writing modified package.json file
✔ Installing dependencies
✔ Writing modified package.json file
✔ Fixing .gitignore
We have ATTEMPTED to convert your app to be in a format that electron-forge understands.
Thanks for using "electron-forge"!!!
npm run make
> [email protected] make /my-electron-app
> electron-forge make
✔ Checking your system
✔ Resolving Forge Config
We need to package your application before we can make it
✔ Preparing to Package Application for arch: x64
✔ Preparing native dependencies
✔ Packaging Application
Making for the following targets: zip
✔ Making for target: zip - On platform: darwin - For arch: x64
Electron Forgeは、パッケージが存在するoutフォルダを作成します.// Example for macOS
out/
├── out/make/zip/darwin/x64/my-electron-app-darwin-x64-1.0.0.zip
├── ...
└── out/my-electron-app-darwin-x64/my-electron-app.app/Contents/MacOS/my-electron-app
Reference
この問題について(1.3クイック起動終了), 我々は、より多くの情報をここで見つけました https://velog.io/@msj0130/1.3-Quick-Start-마무리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol