Vue 开发样板中的随机错误 "ethereum is not defined"
Random error "ethereum is not defined" in Vue development boilerplate
如果这是一个愚蠢的问题,我深表歉意,但我才刚刚开始修补 Vue 和 web3!
我正在尝试使用由 vue-cli 创建的 Vue 基本样板在非常基本的 Vue3 组件中实现 web3,但我遇到了一些奇怪的错误。
首先,这是我的组件的代码:
<template>
<img alt="Vue logo" src="./assets/images/logo.png">
<pre v-if="account">{{ account }}</pre>
</template>
<script>
export default {
name: 'App',
data() {
return {
account: undefined
}
},
async mounted() {
if (typeof ethereum !== 'undefined') {
const accounts = await ethereum.request({ method: 'eth_requestAccounts' })
this.account = accounts[0]
}
}
}
</script>
我 运行 遇到的第一个问题是,当我使用 npm run serve
启动环境并更改我的组件中的一些代码时,我的测试出现以下错误 window 以及在我的终端中:
Failed to compile.
./src/App.vue
Module Error (from ./node_modules/eslint-loader/index.js):
/home/arnaud/Code/_BLOCKCHAIN/crypto-app/src/App.vue
16:30 error 'ethereum' is not defined no-undef
✖ 1 problem (1 error, 0 warnings)
第二个奇怪的行为是,有时在启动环境时我的终端中也会出现此错误,但有时不会。当我在开始时没有错误,并且如果我不更改代码中的任何内容,我的应用程序似乎 运行 没有错误。
我做了一些研究,但目前我没有找到任何对我有帮助的东西:/
这是一个 eslint 错误,因为您正试图在未声明它的范围内使用 ethereum 变量。如果 ethereum 已在全局范围内声明。您可以禁用此行的 eslint。
async mounted() {
// eslint-disable-next-line no-undef
if (typeof ethereum !== 'undefined') {
// eslint-disable-next-line no-undef
const accounts = await ethereum.request({ method: 'eth_requestAccounts' })
this.account = accounts[0]
}
否则你将不得不define/import组件中的以太坊。
先安装 metamask 扩展,然后检查以太坊实例
const {ethereum} =window;
如果这是一个愚蠢的问题,我深表歉意,但我才刚刚开始修补 Vue 和 web3!
我正在尝试使用由 vue-cli 创建的 Vue 基本样板在非常基本的 Vue3 组件中实现 web3,但我遇到了一些奇怪的错误。
首先,这是我的组件的代码:
<template>
<img alt="Vue logo" src="./assets/images/logo.png">
<pre v-if="account">{{ account }}</pre>
</template>
<script>
export default {
name: 'App',
data() {
return {
account: undefined
}
},
async mounted() {
if (typeof ethereum !== 'undefined') {
const accounts = await ethereum.request({ method: 'eth_requestAccounts' })
this.account = accounts[0]
}
}
}
</script>
我 运行 遇到的第一个问题是,当我使用 npm run serve
启动环境并更改我的组件中的一些代码时,我的测试出现以下错误 window 以及在我的终端中:
Failed to compile.
./src/App.vue
Module Error (from ./node_modules/eslint-loader/index.js):
/home/arnaud/Code/_BLOCKCHAIN/crypto-app/src/App.vue
16:30 error 'ethereum' is not defined no-undef
✖ 1 problem (1 error, 0 warnings)
第二个奇怪的行为是,有时在启动环境时我的终端中也会出现此错误,但有时不会。当我在开始时没有错误,并且如果我不更改代码中的任何内容,我的应用程序似乎 运行 没有错误。
我做了一些研究,但目前我没有找到任何对我有帮助的东西:/
这是一个 eslint 错误,因为您正试图在未声明它的范围内使用 ethereum 变量。如果 ethereum 已在全局范围内声明。您可以禁用此行的 eslint。
async mounted() {
// eslint-disable-next-line no-undef
if (typeof ethereum !== 'undefined') {
// eslint-disable-next-line no-undef
const accounts = await ethereum.request({ method: 'eth_requestAccounts' })
this.account = accounts[0]
}
否则你将不得不define/import组件中的以太坊。
先安装 metamask 扩展,然后检查以太坊实例
const {ethereum} =window;