[Daily Post]는 매일매일 탐구한 내용을 간략하게 기록하는 포스트입니다.
따라서 정리되지 않은 내용과 추측을 포함하고 있을 수 있습니다.
더 체계적인 형식을 갖춘 글은 해당 카테고리의 포스트를 확인해주세요 :)

Daily Study

Alchemy

Error 1

어제 문제를 일으켰던 것으로 추정되는 코드는 아래와 같다.

require("dotenv").config();
const alchemyKey = process.env.REACT_APP_ALCHEMY_KEY;
const { createAlchemyWeb3 } = require("@alch/alchemy-web3");
const web3 = createAlchemyWeb3(alchemyKey);

위의 코드를 추가하기 전과 후로 node compile fail 발생 여부가 달라졌다. 오늘은 이 문제가 생긴 원인을 찾아보고, 그 해결방안을 탐구하는 것부터 시작했다. 위 코드를 추가했을 때 npm start를 실행시킨 터미널에 반환된 내용은 다음과 같다.

Failed to compile.

./node_modules/web3-core-method/lib/index.js 152:76
Module parse failed: Unexpected token (152:76)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|   if (Array.isArray(result)) {
|     return result.map(function (res) {
>       return _this.outputFormatter && res ? _this.outputFormatter(res, this?.hexFormat) : res;
|     });
|   } else {

1. 주석처리하며 문제가 되는 코드 찾기

코드의 결과를 보는 것에 급급해 침착하지 않으면 얻어가는 것이 없다는 것을 시프실을 들으며 깨달았다. 아직은 효율성을 따질 떄는 아니라고 판단하고, 느리더라도 제대로 배우자는 생각으로 일단 침착하게 주석처리를 해봤다. 그 결과 다른 곳에는 문제가 없었지만, 아래의 코드가 주석처리 되느냐 아니냐에 따라 문제가 생긴다는 것을 알게 됐다.

const { createAlchemyWeb3 } = require("@alch/alchemy-web3");