国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Electron詳解(二):基本使用與項目打包

這篇具有很好參考價值的文章主要介紹了Electron詳解(二):基本使用與項目打包。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、electron的基本使用

創(chuàng)建一個 electron 項目

在使用Electron進行開發(fā)之前,您需要安裝 Node.js,最低工作版本為 14.x,低于 14 的版本在后面的打包過程中可能會報錯。

(注意,因為 Electron 將 Node.js 嵌入到其二進制文件中,所以在 electron 應用運行時的 Node.js 版本與你本地電腦中運行的 Node.js 版本無關(guān)。)

(雖然您需要在開發(fā)環(huán)境安裝 Node.js 才能編寫 Electron 項目,但是 Electron 不使用您系統(tǒng)的 Node.js 環(huán)境來運行它的代碼。 相反地,它使用 electron 內(nèi)置的 Node.js 運行時。 這意味著您的終端用戶不需要 Node.js 環(huán)境也可以運行您的應用。要查看您應用內(nèi)置的 Node.js 版本,您可以訪問主進程 (main process) 或預加載腳本 (preload script) 中的 process.versions 變量。 您也可以參考 electron/releases 倉庫中的版本列表。)

Electron 應用程序遵循與其他 Node.js 項目相同的結(jié)構(gòu),首先創(chuàng)建一個初始 npm 項目:

mkdir my-electron-app && cd my-electron-app
npm init

設(shè)置entry point為 main.js,author 與 description 可為任意值,但對于應用打包是必填項。

在跑完案例所有步驟后最終完整的 package.json 文件應該類似如下:

{
    "name": "my-electron-app",
    "version": "1.0.0",
    "description": "Hello World!(my test)",
    "main": "main.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "electron-forge start",
        "package": "electron-forge package",
        "make": "electron-forge make"
    },
    "author": "wenxuehai",
    "license": "ISC",
    "devDependencies": {
        "@electron-forge/cli": "^6.0.5",
        "@electron-forge/maker-deb": "^6.0.5",
        "@electron-forge/maker-rpm": "^6.0.5",
        "@electron-forge/maker-squirrel": "^6.0.5",
        "@electron-forge/maker-zip": "^6.0.5",
        "electron": "^23.0.0"
    },
    "dependencies": {
        "electron-squirrel-startup": "^1.0.0"
    }
}

然后,將 electron 包安裝到應用的開發(fā)依賴中。

npm install --save-dev electron

在 package.json配置文件中的scripts字段下增加一條start命令:

{
  "scripts": {
    "start": "electron ."
  }
}

在項目根目錄下創(chuàng)建一個空白的 main.js 文件。任何 Electron 應用程序的入口都是 main 文件。 這個文件控制了主進程,它運行在一個完整的Node.js環(huán)境中,負責控制您應用的生命周期,顯示原生界面,執(zhí)行特殊操作并管理渲染器進程。

執(zhí)行 npm start命令運行 electron 應用,Electron 將依據(jù)應用中 package.json配置下main字段中找到對應的入口文件。

創(chuàng)建應用窗口和頁面

在為我們的應用創(chuàng)建窗口前,我們先創(chuàng)建加載進該窗口的內(nèi)容。 在Electron中,各個窗口顯示的內(nèi)容可以是本地HTML文件,也可以是一個遠程url。

demo 示例:創(chuàng)建一個 index.html 文件作為窗口頁面,main.js 文件作為入口文件,預加載腳本來編輯頁面內(nèi)容。

文件內(nèi)容分別如下,詳細解釋可參考官網(wǎng):https://www.electronjs.org/zh/docs/latest/tutorial/quick-start#運行主進程

<!--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'">
    <title>你好!</title>
</head>
 
<body>
    <h1>你好!</h1>
    我們正在使用 Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    和 Electron <span id="electron-version"></span>.
    <!-- 您也可以此進程中運行其他文件 -->
    <script src="./renderer.js"></script>
</body>
 
</html>

main.js 內(nèi)容:

// main.js
 
// electron 模塊可以用來控制應用的生命周期和創(chuàng)建原生瀏覽窗口
const { app, BrowserWindow } = require("electron");
const path = require("path");
const createWindow = () => {
    // 創(chuàng)建瀏覽窗口
    const mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            preload: path.join(__dirname, "preload.js"),
        },
    });
    // 加載 index.html
    mainWindow.loadFile("index.html");
    // 打開開發(fā)工具
    // mainWindow.webContents.openDevTools()
};
// 這段程序?qū)?Electron 結(jié)束初始化
// 和創(chuàng)建瀏覽器窗口的時候調(diào)用
// 部分 API 在 ready 事件觸發(fā)后才能使用。
app.whenReady().then(() => {
    createWindow();
    app.on("activate", () => {
        // 在 macOS 系統(tǒng)內(nèi), 如果沒有已開啟的應用窗口
        // 點擊托盤圖標時通常會重新創(chuàng)建一個新窗口
        if (BrowserWindow.getAllWindows().length === 0) createWindow();
    });
});
// 除了 macOS 外,當所有窗口都被關(guān)閉的時候退出程序。 因此, 通常
// 對應用程序和它們的菜單欄來說應該時刻保持激活狀態(tài),
// 直到用戶使用 Cmd + Q 明確退出
app.on("window-all-closed", () => {
    if (process.platform !== "darwin") app.quit();
});
// 在當前文件中你可以引入所有的主進程代碼
// 也可以拆分成幾個文件,然后用 require 導入。

perload.js內(nèi)容:

// preload.js
 
// 所有的 Node.js API接口 都可以在 preload 進程中被調(diào)用.
// 它擁有與Chrome擴展一樣的沙盒。
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]);
    }
});

最后,執(zhí)行npm start,將打開一個 electron 應用,如下:

Electron詳解(二):基本使用與項目打包

二、打包應用程序(window平臺)

Electron 的核心模塊中沒有捆綁任何用于打包或分發(fā)文件的工具。 如果您在開發(fā)模式下完成了一個 Electron 應用,可使用electron社區(qū)所支持的打包工具來生成特定于平臺的程序包,如生成 macOS 上的 Apple Disk Image (.dmg)、Windows 上的 Windows Installer (.msi) 或 Linux 上的 RPM Package Manager (.rpm)等等。

使用 Electron Forge 打包

Electron Forge 是一個處理 Electron 應用程序打包與分發(fā)的一體化工具。 在工具底層,它將許多現(xiàn)有的 Electron 工具 (例如 electron-packager、 @electron/osx-sign、electron-winstaller 等) 組合到一起,因此您不必費心處理不同系統(tǒng)的打包工作。

將 Electron Forge 添加到您應用的開發(fā)依賴中,并使用其"import"命令設(shè)置 Forge 的腳手架,將項目導入至 Electron Forge。命令如下:

npm install --save-dev @electron-forge/cli
npx electron-forge import

執(zhí)行以上命令后,F(xiàn)orge 會將一些腳本添加到您的 package.json 文件中。并且會生成一個配置文件 orge.config.js。

  //...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make"
  },
  //...

要創(chuàng)建可分發(fā)文件,請使用項目中的 make 腳本,該腳本最終運行了 electron-forge make 命令。執(zhí)行命令如下:

npm run make

該 make 命令包含兩步:

它將首先運行 electron-forge package ,把您的應用程序 代碼與 Electron 二進制包結(jié)合起來。 完成打包的代碼將會被生成到一個特定的文件夾中。
然后它將使用這個文件夾為每個 maker 配置生成一個可分發(fā)文件。
Electron-forge 會創(chuàng)建 out 文件夾,其中包括可分發(fā)文件與一個包含其源碼的文件夾。在該文件夾下可以找到安裝包 setup.exe 和運行程序 exe。

Electron詳解(二):基本使用與項目打包

Electron詳解(二):基本使用與項目打包

打包報錯解決方法

運行以下命令可以會報錯:

npx electron-forge import

報錯信息如下:

Electron詳解(二):基本使用與項目打包

這是因為 node 版本過低導致的,使用 electron 時 node 最低需要 14.x 版本。

三、打包應用程序(Linux平臺)

本來 electron-builder是支持在windows下開發(fā),然后一條命令打包到不同平臺的,但此命令需要使用遠程服務器來完成打包,然后此服務器已經(jīng)停止很長時間了,而且從官方文檔可感知后續(xù)不會開啟。所以要打linux包必須到linux平臺下打包。

Windows下無法打linux版本的包,如果你要打linux系統(tǒng)的amd64架構(gòu)需要找一臺linux amd64的系統(tǒng)打包,也可以在amd64下打arm架構(gòu)的包,但是不能運行,需要放到arm架構(gòu)的系統(tǒng)里才能運行。

electron builder打包

參考:https://blog.51cto.com/u_12303347/5424258、https://www.cnblogs.com/tuyile006/p/16399745.html

照上述步驟打包可能會報錯,如下:

Electron詳解(二):基本使用與項目打包

這是因為 ico 圖標不支持 Linux系統(tǒng),此時應該找到代碼中所有用到 favicon.ico 的地方,將其改為 xxx.png ,即改成png圖片,并將該 png 圖片放在跟之前 favicon.ico 相同位置上。(實際上應該只需要改electron-builder.json5文件即可。)

打包成功后,在 release 目錄下將會生成一個 AppImage 文件,該文件就是 Linux 系統(tǒng)上的可執(zhí)行文件。

Electron詳解(二):基本使用與項目打包

先賦予該文件可執(zhí)行權(quán)限,然后再直接執(zhí)行即可:

// 賦予AppImage文件可執(zhí)行權(quán)限:
chmod a+x AppImage文件的路徑
//運行AppImage程序(下面如果是通過root用戶運行,則可能需要加上 --no-sandbox參數(shù))
./AppImage文件   

Electron詳解(二):基本使用與項目打包

Electron詳解(二):基本使用與項目打包文章來源地址http://www.zghlxwxcb.cn/news/detail-503983.html

到了這里,關(guān)于Electron詳解(二):基本使用與項目打包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 將vue項目通過electron打包成windows可執(zhí)行程序

    將vue項目通過electron打包成windows可執(zhí)行程序

    1、準備好dist將整個項目打包 2、安裝electron依賴 在dist文件夾下面創(chuàng)建electron.js electron.js內(nèi)容如下: 在dist文件夾下面添加package.json文件內(nèi)容如下: 整個文件夾格式如下: 在跟目錄添加命令 執(zhí)行打包命令 等待打包結(jié)果,打包出來為一下截圖即為打包成功,雙擊china_new1.exe運行

    2024年02月12日
    瀏覽(14)
  • 【Electron】使用electron-builder打包時下載electron失敗或慢的解決方案

    問題描述 electron-builder打包時報錯信息如下: 解決 該問題是因為electron包需要翻墻獲得,需要全局代理,但是太麻煩,我們一般是修改鏡像源 在項目根目錄下創(chuàng)建.npmrc文件,并且輸入以下配置:

    2024年02月11日
    瀏覽(32)
  • vite+ vue3(現(xiàn)有項目或者新項目)+electron打包教程,以及electron代碼熱重載頁面(保姆級教程),一文帶你走完全過程

    vite+ vue3(現(xiàn)有項目或者新項目)+electron打包教程,以及electron代碼熱重載頁面(保姆級教程),一文帶你走完全過程

    ? 1.刪掉type這個字段,不然會報錯 ?2.然后加上\\\"main\\\": \\\"electron/main.js\\\", ?3.在scripts字段中加入啟動electron的命令:如下圖 5.這時候你去打開控制臺輸入輸入npm run start會得到一片空白,展示如下頁面 1.因為現(xiàn)在監(jiān)聽的是vue打包后的dist文件夾中的index.html 2.我就不教你們怎么打開那個

    2024年02月11日
    瀏覽(650)
  • electron項目打包之后顯示空白頁面以及發(fā)送http請求地址錯誤

    ? ? ? ? electron項目在開發(fā)階段,因為使用webpack腳手架,啟用了webServer提供的http服務,所以有路由功能,當我們運行npm run electron:serve的時候,最后可以直接加載http://localhost:8080。在app里面就可以顯示頁面。 ? ? 當electron項目打包之后,成為桌面程序,這個時候就沒有http服務支

    2024年02月13日
    瀏覽(26)
  • electron使用electron-builder進行MacOS的 打包、簽名、公證、上架、自動更新

    electron使用electron-builder進行MacOS的 打包、簽名、公證、上架、自動更新

    由于electron在macOS下的坑太多,本文不可能把所有的問題都列出來,也不可能把所有的解決方案貼出來;本文也不太會講解每一個配置點為什么要這么設(shè)置的原因,因為有些點我也說不清,我盡可能會說明的。所以,你要拋棄你之前所有已經(jīng)完成的東西,最好弄一個全新的系統(tǒng)

    2024年02月03日
    瀏覽(25)
  • Electron-builder打包vue項目后,背景圖片不加載的問題

    Electron-builder打包vue項目后,背景圖片不加載的問題

    打包后的項目啟動之后,背景圖片沒有成功加載,只有一片空白。此時打開調(diào)試工具可以看到,electron自動把圖片路徑加上了/img/ ?我們這時打開打包后的dist_electron文件夾,打開bundledimg目錄, ?這就是上面報錯的路徑。 對于背景圖片,不要使用如下 background:url(\\\'..\\\') 的形式,這樣寫

    2024年02月09日
    瀏覽(51)
  • vue2使用electron以及打包配置

    vue2使用electron以及打包配置

    1.創(chuàng)建項目 2.安裝electron 會自動安裝相關(guān)依賴 安裝成功后會在src下自動生成一個background.js文件就是相應的electron的配置信息 以及package.json中的scripts中也會多出了幾種運行或打包的命令 運行項目: 此時運行項目沒有報錯但是啟的很慢 將background.js中的這段代碼注釋掉就可解決

    2024年01月17日
    瀏覽(16)
  • electron+vue3全家桶+vite項目搭建【24】設(shè)置應用圖標,打包文件的圖標

    electron+vue3全家桶+vite項目搭建【24】設(shè)置應用圖標,打包文件的圖標

    demo項目地址 在electron中,我們可以通過electron-builder的配置文件來設(shè)置打包后的應用圖標 因為mac環(huán)境下的圖標需要特殊格式,這里我們可以利用electron-icon-builder進行配置 1.引入相關(guān)依賴 加入安裝過程中卡在了 phantomjs-2.1.1-windows.zip的下載,可以直接去github上下載 這里我也放一

    2024年02月17日
    瀏覽(123)
  • 使用Electron打包vue文件變成exe應用程序

    使用Electron打包vue文件變成exe應用程序

    克隆下載Electron: 鏈接: electron-quick-start 1.下載之后安裝Electron依賴 npm安裝electron總失敗使用下面的安裝方式 2.安裝打包運行 代碼如下(示例): 代碼如下(示例): 代碼如下(示例): 打包后得路徑修改成為./,避免Electron打包exe后顯示空白 修改生產(chǎn)環(huán)境配置,配置為后端

    2024年01月24日
    瀏覽(29)
  • electron 使用electron-packager打linux-x64包與linux-arm64包,解決打包緩慢問題

    electron 使用electron-packager打linux-x64包與linux-arm64包,解決打包緩慢問題

    使用electron-packager打linux-x64包與linux-arm64包,解決下載zip打包緩慢問題 在使用electron-packager打包的過程中,需要在第一次下載electron版本對應的zip文件,下載很緩慢,而且還可能出現(xiàn)每次都在下載zip的情況 解決思路是提前下載好zip文件并修改electron—packager源碼將zip的路徑指定到

    2024年02月16日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包