首页 > 解决方案 > Web3 不会在 Azure 上编译

问题描述

重现步骤:

  1. 在 Visual Studio 2019 社区中,创建一个新的基本 Azure Node.js Express 4 应用程序 (TypeScript)。
  2. npm 安装 web3
  3. 在 import path = require('path'); 之后添加第 4 行

    var Web3 = 需要('web3');

  4. 在本地运行它以确保它工作(它确实)
  5. 将其发布到 Azure 并查看日志

预期结果

它应该可以正常编译和运行——就像它在第 4 步中在本地所做的一样

实际结果(来自 Azure 日志流)

2020 年 4 月 2 日星期四 17:31:57 GMT+0000(协调世界时):应用程序已引发未捕获的异常并终止:D:\home\site\wwwroot\node_modules\web3-core-method\src\index.js :285.then(async function (receipt) {^^^^^SyntaxError: missing ) 在 Module._compile (module.js:542:28) 的参数列表后 Object.exports.runInThisContext (vm.js:76:16)在 Object.Module._extensions..js (module.js:579:10) 在 Module.load (module.js:487:32) 在 tryModuleLoad (module.js:446:12) 在 Function.Module._load (module .js:438:3) 在 Module.require (module.js:497:17) 在 require (internal/module.js:20:19) 在 Object. (D:\home\site\wwwroot\node_modules\web3-core\src\extend.js:27:14)在 Module._compile (module.js:570:32)应用程序抛出了一个未捕获的异常并被终止:D :\home\site\wwwroot\node_modules\web3-core-method\src\index.js:285。然后(异步函数(收据){^^^^^SyntaxError: missing)在 Object.exports.runInThisContext (vm.js:76:16)at Module._compile (module.js:542:28)at Object. Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js: 438:3) 在 Module.require (module.js:497:17) 在 require (internal/module.js:20:19) 在 Object. (D:\home\site\wwwroot\node_modules\web3-core\src\extend.js:27:14) 在 Module._compile (module.js:570:32) 17)在要求(内部/module.js:20:19)在对象。(D:\home\site\wwwroot\node_modules\web3-core\src\extend.js:27:14) 在 Module._compile (module.js:570:32) 17)在要求(内部/module.js:20:19)在对象。(D:\home\site\wwwroot\node_modules\web3-core\src\extend.js:27:14) 在 Module._compile (module.js:570:32)

我查看了 \node_modules\web3-core-method\src\index.js 中的第 285 行,它看起来不错。

我删除了我的 package-lock.json 和我的 node_modules 目录并再次安装了 npm(更不用说我在原始项目小型测试项目中都这样做了)。

我在这里不知所措。有什么建议么?

标签: node.jstypescriptazurecompiler-errorsweb3

解决方案


web3我在桌面上运行最新版本的(1.2.6)时遇到了同样的问题,这个错误在导入时显示web3

const Web3 = require('web3');

有趣的是,如果我在节点交互式控制台中编写同一行并且对象正常工作,则没有问题Web3

我将web3版本更改为1.0.0-beta.55,它工作正常。我希望这是在最新版本中修复的错误。

PS:在尝试更改web3版本之前,我尝试将节点从8.9.4to更新,13.12.0但错误仍然存​​在。


推荐阅读