复制步骤:
- 在Visual Studio 2019社区中,创建一个新的Basic Azure Node.js Express 4应用程序(TypeScript)。
- Npm安装web3
- [import path = require('path');之后添加第4行;
var Web3 = require('web3');
- 在本地运行以确保它正常运行
- 将其发布到Azure并查看日志
预期结果
它应该编译并可以正常运行-就像在步骤4中本地所做的一样
实际结果(来自Azure日志流)
[Thu Apr 02 2020 17:31:57 GMT + 0000(世界协调时间):应用程序引发了未捕获的异常并终止了:D:\ home \ site \ wwwroot \ node_modules \ web3-core-method \ src \ index .js:285.then(异步函数(接收){^^^^^ SyntaxError:missing)在Module._compile(module.js:542 :) Object.exports.runInThisContext(vm.js:76:16)的参数列表之后28)在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(内部/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.then(异步函数(receipt){^^^^^ 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)在tryModuleLoad(module.js:446:12)在Function.Module._load(module.js:438:3)在Module.require(module.js:497:17)在require(内部/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(更不用说我在原始项目和小型测试项目中都这样做了。
我不知所措。有什么建议吗?
我在桌面上运行最新版本的web3
(1.2.6)时也遇到了同样的问题,在导入web3
时显示此错误。
const Web3 = require('web3');
有趣的是,如果我在节点交互式控制台中写同一行并且对象Web3
正常工作,就没有问题。
我将web3
版本更改为1.0.0-beta.55
,并且工作正常。我希望这是要在最新版本中修复的错误。
PS:在尝试更改web3
版本之前,我尝试将节点从8.9.4
更新为13.12.0
,但错误仍然存在。
所以。 。 。 。我终于想通了。
Azure,默认情况下具有一个非常小的旧版本的Node -您只能将其升级到8.9.4(而节点12.16.1是LTS版本)。
但是通过添加值为8.9.4的配置设置WEBSITE_NODE_DEFAULT_VERSION进行升级将解决该问题。