首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个电子应用程序中,只要在libp2p中导入main.ts,就会导致“自我未定义”

在一个电子应用程序中,只要在libp2p中导入main.ts,就会导致“自我未定义”
EN

Stack Overflow用户
提问于 2021-01-28 08:34:16
回答 1查看 175关注 0票数 0

在电子应用程序中,只需在main.ts中导入main.ts:

代码语言:javascript
复制
const Libp2p = require('libp2p');

导致此错误:

代码语言:javascript
复制
A JavaScript error occurred in the main process
Uncaught Exception:
ReferenceError: self is not defined
    at Object../node_modules/multihashing-async/src/sha.browser.js (/home/marco/webMatters/electronMatters/OnlyLibp2p
/.webpack/main/index.js:34203:16)
    at __webpack_require__ (/home/marco/webMatters/electronMatters/OnlyLibp2p/.webpack/main/index.js:21:30)
    at Object../node_modules/libp2p-crypto/src/keys/rsa-class.js (/home/marco/webMatters/electronMatters/OnlyLibp2p
/.webpack/main/index.js:19523:13)

tsconfig.json:

代码语言:javascript
复制
{
  "compilerOptions": {
    "jsx": "react",
    "allowJs": true,
    "target": "ES6",
    "module": "ESNext",
    "skipLibCheck": true,
    "esModuleInterop": true,
    "noImplicitAny": false,
    "sourceMap": true,
    "baseUrl": ".",
    "outDir": "dist",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "paths": {
      "*": ["node_modules/*"],
      "@app/*": ["./src/app/*"],
      "@static/*": ["./src/static/*"],
      "@src/*": ["./src/*"]
    }
  },
  "include": ["src/**/*"]
}

devDependencies:

代码语言:javascript
复制
"@electron-forge/cli": "6.0.0-beta.53",
"@electron-forge/maker-deb": "6.0.0-beta.53",
"@electron-forge/maker-rpm": "6.0.0-beta.53",
"@electron-forge/maker-squirrel": "6.0.0-beta.53",
"@electron-forge/maker-zip": "6.0.0-beta.53",
"@electron-forge/plugin-webpack": "6.0.0-beta.53",
"electron": "^11.2.1",
"typescript": "^4.0.2",
"webpack": "4"

依赖关系:

代码语言:javascript
复制
"libp2p": "^0.30.4",
"libp2p-kad-dht": "^0.20.6",

  • 节点版本: v14.5.0
  • O.S.:Ubuntu18.04.4桌面

我发现在导入另一个libp2p库时也会发生这种情况:

代码语言:javascript
复制
//const Libp2p = require('libp2p');
const KadDHT = require('libp2p-kad-dht');

如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-01-28 09:57:46

在呈现程序过程中使用import而不是require解决了这个问题:

代码语言:javascript
复制
import Libp2p from 'libp2p';
import KadDHT from 'libp2p-kad-dht';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65933559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档