0%

eth | web3.js 部分版本在 vue 项目引用中出错

最近在 vue 项目中,引用了 web3.js ,但是,会出错。

出现

ModuleParseError: Module parse failed: C:\Path\node_modules\web3-core-helpers\lib\formatters.js Unexpected token (296:20)
You may need an appropriate loader to handle this file type.
|     // If options !== undefined, don't blow out existing data
|     if (options.fromBlock === undefined)
|         options = { ...options, fromBlock: 'latest' };
|     if (options.fromBlock || options.fromBlock === 0)
|         options.fromBlock = inputBlockNumberFormatter(options.fromBlock);
    at C:\Path\node_modules\webpack\lib\NormalModule.js:303:19
    at C:\Path\node_modules\webpack\lib\NormalModule.js:209:11
    at C:\Path\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (C:\Path\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
    at C:\Path\node_modules\loader-runner\lib\LoaderRunner.js:205:4
    at C:\Path\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:70:14
    at processTicksAndRejections (internal/process/task_queues.js:75:11)

参考资料



过程


网上大部分 vue 引入 web3 都是 1.0 版本以下,但是,1.0+1.0- 之间的差别太大。

我在引入 web3 的版本有

  • 1.5.2
  • 1.3.6

但是,最后都会出现上面的错误。但是,值得一提的是,我自己创建的 webpack 项目用的也是 web3 1.3.6 ,但是,并没有出错。

并且,我在网上也能看到有 vue 项目引用了 1.3.6

具体原因还没有看,但是,猜测应该是缺少了某一个 loader

经过翻阅,是和 vue 的版本是 web3@1.2.9 ,换了版本果然就可以了。

请我喝杯咖啡吧~