javascript - 为什么 Electron 中没有定义 crashReporter?

标签 javascript electron

我最近升级到 Electron 版本 1.6.11,现在当我运行 npm start 命令时,出现以下错误:

enter image description here

我的 main.js 文件的顶部如下所示:

const {app, BrowserWindow, ipcMain, crashReporter} = require('electron');
const path = require('path');

crashReporter.start({
    productName: 'MyCo',
    companyName: 'MyCo, Inc.',
    submitURL: 'https://myco.co/fake-url-to-submit',
    uploadToServer: true
});

app.on('window-all-closed', function() {
  if (process.platform != 'darwin') {
    app.quit();
  }
});

以下是我的 package.json 文件的内容:

{
  "name": "MyApp",
  "productName": "MyApp",
  "version": "0.0.1",
  "main": "main.js",
  "repository": "https://github.com/zackshapiro/myApp",
  "devDependencies": {
    "babel-core": "^6.7.2",
    "babel-eslint": "^7.1.1",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.3.13",
    "babel-preset-react": "^6.3.13",
    "babel-preset-stage-3": "^6.17.0",
    "css-loader": "^0.23.1",
    "electron": "^1.6.11",
    "electron-packager": "^8.7.1",
    "electron-rebuild": "^1.1.3",
    "eslint": "^3.13.1",
    "eslint-loader": "^1.6.1",
    "eslint-plugin-react": "^6.9.0",
    "file-loader": "^0.10.1",
    "node-libs-browser": "^1.0.0",
    "node-sass": "^4.2.0",
    "sass-loader": "^4.1.1",
    "style-loader": "^0.13.0",
    "webpack": "^2.6.1",
    "webpack-dev-server": "^2.4.4"
  },
  "scripts": {
    "start": "./node_modules/electron-prebuilt/dist/Electron.app/Contents/MacOS/Electron .",
    "watch": "./node_modules/.bin/webpack-dev-server",
    "electron-rebuild": "./node_modules/.bin/electron-rebuild"
  },
  "dependencies": {
    "babel-polyfill": "^6.22.0",
    "electron-context-menu": "^0.8.0",
    "electron-prebuilt": "^0.37.2",
    "gl-react": "^2.2.9",
    "gl-react-hue-rotate": "^1.1.0",
    "isomorphic-fetch": "^2.2.1",
    "rc-slider": "^6.1.0",
    "react": "15.4.2",
    "react-dnd": "^2.2.4",
    "react-dnd-html5-backend": "^2.2.4",
    "react-dom": "15.4.2",
    "react-redux": "^5.0.2",
    "react-router": "^4.1.1",
    "react-router-dom": "^4.1.1",
    "react-router-redux": "^5.0.0-alpha.6",
    "redux": "^3.6.0",
    "redux-saga": "^0.14.3",
    "tinycolor2": "^1.4.1"
  }
}

如何修复此问题并让 crashReporter 正常工作?

最佳答案

您的 start 脚本错误 - 您正在尝试使用已过时的 electron-prebuilt,但您可能忘记从计算机上卸载它,因此它仍然存在作品。它目前位于您的 devDependency 中,但已被弃用,并且自 2016 年以来不再受支持。通过以下方式将其删除:

npm uninstall --save-dev electron-prebuilt

electron-prebuilt 未随 crashReporter 一起提供,因此当您尝试导入它时它是未定义的。

您应该使用随 crashReporter 安装的最新 electron。为此,请将脚本更改为(如果您已在本地安装):

"start": "./node_modules/.bin/electron ."

这将使用 Electron 而不是 Electron 预构建,它应该可以正常工作。

关于javascript - 为什么 Electron 中没有定义 crashReporter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813162/

相关文章:

javascript - Electron - 如何使用主进程和渲染进程

javascript - Node子进程打包Electron App后立即退出

javascript - 在 Bootstrap 4 和 React 中使用模块化 CSS

javascript - 检查是否存在基于 jQuery 1.7 中的文本的选择选项

javascript - 如何访问 Angular 组件 $postLink 内的元素

javascript - 双线性插值函数太慢 - Javascript

javascript - FontAwesome 无法在本地和 Electron 应用程序中加载字体

javascript - 将数据从.net应用程序发送到 Electron 应用程序

javascript - python ajax请求出错

javascript - 通过 AJAX Web API 存在参数时无法发布