最近在学习web3.0开发DApp的视频教程,遇到用助记词生成秘钥对报错Uncaught ReferenceError: process is defined。具体报错如下:
_stream_writable.js:57 Uncaught ReferenceError: process is not defined
at ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js (_stream_writable.js:57:18)
at __webpack_require__ (bootstrap:22:1)
at fn (hot module replacement:61:1)
at ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js (readable-browser.js:4:1)
at __webpack_require__ (bootstrap:22:1)
at fn (hot module replacement:61:1)
at ./node_modules/browserify-sign/browser/index.js (index.js:5:14)
at __webpack_require__ (bootstrap:22:1)
at fn (hot module replacement:61:1)
at ./node_modules/crypto-browserify/index.js (index.js:39:12)
在网上搜了好几个小时都没找到解决方法。突然在学习的视频论坛找到有哥们说是引入的包不兼容问题导致报这个错。我试了还真是这个这个问题所致。太坑了!
根据一个个包排错,最后发现是这个包的问题:node-polyfill-webpack-plugin@4.0.0,把它的版本降到2.0.1就可以了。
我的代码如下:
<template>
<h1>助记词</h1>
<p>{{ mnmonic }}</p>
<button @click="genMnemonic()">生成seed</button>
<p>{{ seed }}</p>
<div>hello</div>
</template>
<script setup>
import { ref } from "vue";
// import * as bip39 from 'bip39';
import { generateMnemonic, mnemonicToSeed } from "bip39";
import { hdkey } from "ethereumjs-wallet";
//创建助记词
// const mnmonic = bip39.generateMnemonic();
const mnmonic = ref('night raw collect flash yellow lift truly cram turtle banana fancy quiz');
console.log(mnmonic);
//生成秘钥对 keypair
const genMnemonic = async () => {
const seed = await mnemonicToSeed(mnmonic.value);
const hdWallet = hdkey.fromMasterSeed(seed);
const keypair = hdWallet.derivePath("m/44'/60'/0'/0/0");
console.log('打印:', keypair);
};
genMnemonic();
</script>
<style lang='less' scoped></style>
若大家有问题请留言。