加载 gRPC 二进制模块失败,因为它没有为当前系统安装

我正在制作一个使用 firebase 实时数据库的电子应用程序。我遵循了 youtube 上的教程并阅读了 firebase 网站上的文档。一切都做得很完美。我的代码:main.html:


<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8">

    <title>Hello World!</title>

    <!-- https://electronjs.org/docs/tutorial/security#csp-meta-tag -->


  </head>

  <body>

    <h1>Hello World!</h1>

    We are using node <script>document.write(process.versions.node)</script>,

    Chrome <script>document.write(process.versions.chrome)</script>,

    and Electron <script>document.write(process.versions.electron)</script>.

  </body>

  <script>

    require('./renderer.js')

  </script>

</html>

主.js:


const { app, BrowserWindow } = require('electron')


function createWindow () {

  // Create the browser window.

  let win = new BrowserWindow({

    width: 800,

    height: 600,

    webPreferences: {

      nodeIntegration: true

    }

  })


  // and load the index.html of the app.

  win.loadFile('main.html')

}


app.whenReady().then(createWindow)

renderer.js(来自教程)


var firebase = require("firebase");

// Your web app's Firebase configuration

var firebaseConfig = {

    apiKey: "***",

    authDomain: "***",

    databaseURL: "***",

    projectId: "***",

    storageBucket: "***",

    messagingSenderId: "***",

    appId: "***",

    measurementId: "***"

  };

  // Initialize Firebase

  firebase.initializeApp(firebaseConfig);

笔记!!我曾经***替换数据只是为了确保它们无论如何都不会暴露。我的程序应该有它们。


包.json


{

  "name": "rubik",

  "version": "1.0.0",

  "description": "",

  "main": "main.js",

  "scripts": {

    "start": "electron ."

  },

  "author": "",

  "license": "ISC",

  "dependencies": {

    "@grpc/grpc-js": "^0.7.4",

    "firebase": "^7.13.1"

  },

  "devDependencies": {

    "electron": "^8.2.0"

  }

}


SMILET
浏览 146回答 1
1回答

湖上湖

我不确定 gRPC 是否可以在 Electron 应用程序中使用,但建议采取另一种方式。现在,您正在将所有 Firebase 产品的 SDK 加载到您的应用中,这可能远远超出需要。这不仅会增加应用程序的大小,还会引入各种不必要的依赖项,例如 gRPC(仅由 Firestore 使用)。减小应用程序大小并消除错误消息的最简单方法是仅包含您实际使用的 Firebase SDK:var&nbsp;firebase&nbsp;=&nbsp;require("firebase/app"); require("firebase/database")有关这方面的更多信息,请参阅Firebase 文档中添加 Firebase SDK 和初始化 Firebase部分中的Node.js选项卡。即使您不直接使用 Node.js,您也需要在此处查找使用导入模块方法的示例。require
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript