首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bip39中生成VueJS助记符,获取错误未定义的ReferenceError:全局

在bip39中生成VueJS助记符,获取错误未定义的ReferenceError:全局
EN

Stack Overflow用户
提问于 2022-04-01 15:09:10
回答 1查看 378关注 0票数 2

我正在使用VueJS v3,并试图使用bip39库生成和显示BIP39助记符。但是,我在浏览器控制台中得到了一个错误:

代码语言:javascript
复制
Uncaught ReferenceError: global is not defined  _stream_readable.js:48:20
    js _stream_readable.js:48
    __require chunk-PWNRNYY6.js:23
    js readable-browser.js:1
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    js browser.js:3
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    <anonymous> bip39:1

    js _stream_readable.js:48
    __require chunk-PWNRNYY6.js:23
    js readable-browser.js:1
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    js browser.js:3
    __require chunk-PWNRNYY6.js:23
    js index.js:3
    __require chunk-PWNRNYY6.js:23
    <anonymous> bip39:1
    InnerModuleEvaluation self-hosted:2393
    InnerModuleEvaluation self-hosted:2393
    InnerModuleEvaluation self-hosted:2393
    InnerModuleEvaluation self-hosted:2393
    evaluation self-hosted:2354
代码语言:javascript
复制
<script setup>
import { generateMnemonic } from "bip39";
import {ref} from "vue";
let mnemonic = ref(null);
mnemonic.value = generateMnemonic();
</script>

<template>
  <div v-if="mnemonic !== null">
   <h1>{{ mnemonic }}</h1>
  </div>
</template>

Package.json

代码语言:javascript
复制
{
  "name": "vue-app",
  "version": "0.0.0",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview --port 5050"
  },
  "dependencies": {
    "bip39": "^3.0.4",
    "pinia": "^2.0.11",
    "vue": "^3.2.31",
    "vue-router": "^4.0.12"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^2.2.2",
    "vite": "^2.8.4"
  }
}

我可以让它在Vue之外的普通.js中工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-02 17:05:59

下面是一个工作解决方案的现场演示:

https://codesandbox.io/s/bip39-vue-demo-5nlzy4

不过,我想说的是,我没那么容易试过这个模块。我认为它的设计是在服务器端运行,而不是像这样在浏览器中运行。如果您在生产中使用它,也可能需要考虑一些安全考虑,但这是另一个问题。

下面是我为演示用法而构建的https://5nlzy4.csb.app/ Vue组件:

代码语言:javascript
复制
<template>
  <div class="hello">
      <div v-if="mnemonic">
        <p><b>Result</b>: {{ mnemonic }} </p>
      </div>
      <div v-else>Loading....</div>
  </div>
</template>

<script>

import { mnemonicToSeed } from 'bip39';

export default {
  name: "GenerateMnemonic",
  props: {
    msg: String
  },
   data() {
    return {
      mnemonic: null,  
    };
  },
  mounted() {
    mnemonicToSeed('basket actual')
      .then(bytes => bytes.toString('hex'))
      .then((result) => {
        this.mnemonic = result;
      });
  },
};
</script>

<style scoped>
.hello {
  max-width: 500px;
  overflow-wrap: break-word;
  margin: 0 auto;
  text-align: left;
  padding: 0 0.5rem;
  border: 1px solid #2c3e50;
  border-radius: 0.25rem;
}
</style>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71709107

复制
相关文章

相似问题

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