electron框架開(kāi)發(fā)實(shí)踐分享

electron 介紹

使用 JavaScript, HTML 和 CSS 構(gòu)建跨平臺(tái)的桌面應(yīng)用

官網(wǎng)站點(diǎn):https://electronjs.org/


快速開(kāi)始

# 克隆示例項(xiàng)目的倉(cāng)庫(kù)
$ git clone https://github.com/electron/electron-quick-start

# 進(jìn)入這個(gè)倉(cāng)庫(kù)
$ cd electron-quick-start

# 安裝依賴并運(yùn)行
$ npm install && npm start
  • electron 安裝 卡在 node install.js
  • electron鏡像在windows下安裝出錯(cuò)

解決方法

//設(shè)置.npmrc文件
registry=https://registry.npm.taobao.org
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs
ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/"

創(chuàng)建透明窗體

  • 拖動(dòng)

主進(jìn)程

渲染進(jìn)程

主進(jìn)程 與 渲染進(jìn)程 通訊

打包 electron-builder

常見(jiàn)的可用的完整的配置

"build": {
    "productName":"xxxx",//項(xiàng)目名 這也是生成的exe文件的前綴名
    "appId": "com.leon.xxxxx",//包名  
    "copyright":"xxxx",//版權(quán)  信息
    "directories": { // 輸出文件夾
      "output": "build"
    }, 
    "nsis": {
      "oneClick": false, // 是否一鍵安裝
      "allowElevation": true, // 允許請(qǐng)求提升。 如果為false,則用戶必須使用提升的權(quán)限重新啟動(dòng)安裝程序。
      "allowToChangeInstallationDirectory": true, // 允許修改安裝目錄
      "installerIcon": "./build/icons/aaa.ico",// 安裝圖標(biāo)
      "uninstallerIcon": "./build/icons/bbb.ico",//卸載圖標(biāo)
      "installerHeaderIcon": "./build/icons/aaa.ico", // 安裝時(shí)頭部圖標(biāo)
      "createDesktopShortcut": true, // 創(chuàng)建桌面圖標(biāo)
      "createStartMenuShortcut": true,// 創(chuàng)建開(kāi)始菜單圖標(biāo)
      "shortcutName": "xxxx", // 圖標(biāo)名稱
      "include": "build/script/installer.nsh", // 包含的自定義nsis腳本
    },
    "publish": [
      {
        "provider": "generic", // 服務(wù)器提供商 也可以是GitHub等等
        "url": "http://xxxxx/" // 服務(wù)器地址
      }
    ],
    "files": [
      "dist/electron/**/*"
    ],
    "dmg": {
      "contents": [
        {
          "x": 410,
          "y": 150,
          "type": "link",
          "path": "/Applications"
        },
        {
          "x": 130,
          "y": 150,
          "type": "file"
        }
      ]
    },
    "mac": {
      "icon": "build/icons/icon.icns"
    },
    "win": {
      "icon": "build/icons/aims.ico",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "ia32"
          ]
        }
      ]
    },
    "linux": {
      "icon": "build/icons"
    }
  }

命令行參數(shù)(CLI)

  • Commands(命令):
electron-builder build                    構(gòu)建命名                      [default]
  electron-builder install-app-deps         下載app依賴
  electron-builder node-gyp-rebuild         重建自己的本機(jī)代碼
  electron-builder create-self-signed-cert  為Windows應(yīng)用程序創(chuàng)建自簽名代碼簽名證書(shū)
  electron-builder start                    使用electronic-webpack在開(kāi)發(fā)模式下運(yùn)行應(yīng)用程序(須臾要electron-webpack模塊支持)
  • Building(構(gòu)建參數(shù)):
 --mac, -m, -o, --macos   Build for macOS,                              [array]
  --linux, -l              Build for Linux                               [array]
  --win, -w, --windows     Build for Windows                             [array]
  --x64                    Build for x64 (64位安裝包)                     [boolean]
  --ia32                   Build for ia32(32位安裝包)                     [boolean]
  --armv7l                 Build for armv7l                              [boolean]
  --arm64                  Build for arm64                               [boolean]
  --dir                    Build unpacked dir. Useful to test.           [boolean]
  --prepackaged, --pd      預(yù)打包應(yīng)用程序的路徑(以可分發(fā)的格式打包)
  --projectDir, --project  項(xiàng)目目錄的路徑。 默認(rèn)為當(dāng)前工作目錄。
  --config, -c             配置文件路徑。 默認(rèn)為`electron-builder.yml`(或`js`,或`js5`)

構(gòu)建打包

  • electron npm下載問(wèn)題
    解決方法
//.npmrc文件配置
ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/
//或者
//ELECTRON_MIRROR=https://cdn.npm.taobao.org/dist/electron/
  • NSIS下載問(wèn)題
    解決方法
    缺什么就下什么
    存放目錄
    存放目錄
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容