Open 0x3c5ad opened 11 months ago
将本地的webpack清空后,将node版本降级为12.22.12,可以执行npm i,但是运行时报错
问题已解决
将该目录下的文件进行更改后,问题解决 node_modules/web3-utils/lib/utils.js 修改代码: // var BN = require('bn.js'); // var numberToBN = require('number-to-bn'); // var utf8 = require('utf8'); // var ethereumjsUtil = require('@ethereumjs/util'); // var ethereumBloomFilters = require('ethereum-bloom-filters'); // var { keccak256 } = require('ethereum-cryptography/keccak.js');
var { keccak256 } = require('ethereum-cryptography/keccak.js');
var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
运行成功的图片:
release-1.5.3版本 node依赖安装后,无法运行和编译 node版本16.x
var { keccak256 } = require('ethereum-cryptography/keccak.js');
var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
已解决。本质还是webpack loader 对es6的语法支持问题。解决方法1: 图题主ethereumjs-util的方式。2: 修改webpack loader
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
已解决。本质还是webpack loader 对es6的语法支持问题。解决方法1: 图题主ethereumjs-util的方式。2: 修改webpack loader
package-lock.json 真的需要提交下,版本及依赖关系随着时间真的会影响后续运行和编译
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
应该会提示这个
然后按照给的提示安装npm install --save ethereumjs-util这个即可
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
已解决。本质还是webpack loader 对es6的语法支持问题。解决方法1: 图题主ethereumjs-util的方式。2: 修改webpack loader
package-lock.json 真的需要提交下,版本及依赖关系随着时间真的会影响后续运行和编译
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
应该会提示这个
然后按照给的提示安装npm install --save ethereumjs-util这个即可
感谢,node14.x,1.5.5成功编译
var { keccak256 } = require('ethereum-cryptography/keccak.js'); var BN = require('bn.js'); var numberToBN = require('number-to-bn'); var utf8 = require('utf8'); var ethereumjsUtil = require('ethereumjs-util'); var ethereumBloomFilters = require('ethereum-bloom-filters');
按照上述修改,使用相同的nodejs版本未成功运行,请问还有别的配置项修改吗?
已解决。本质还是webpack loader 对es6的语法支持问题。解决方法1: 图题主ethereumjs-util的方式。2: 修改webpack loader
package-lock.json 真的需要提交下,版本及依赖关系随着时间真的会影响后续运行和编译
根本问题在于作者未提交版本锁定文件,对于开源项目这是及其重要的。随着项目和依赖库的迭代,说不定哪天项目就跑步起来了 我这里拉的是 1.5.5 的代码,包管理用的是 yarn,将下面的版本依赖范围缩小
原来的会安装<2.0.0的最新版本,目前我的是 1.10.2 , 这些依赖里面用了一些 es2020 的语法特性
而项目依赖的是 babel6, 未配置相应的转换插件
知道问题所在,处理方式就很多了,最简单易用的方式就是降级依赖
npm i 报错 node版本16.16.0