最近在 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
,换了版本果然就可以了。