簡體   English   中英

Web3 不會在 Azure 上編譯

[英]Web3 will not compile on Azure

重現步驟:

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

    var Web3 = require('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 ) 在參數列表 Object.exports.runInThisContext (vm.js:76:16)at Module._compile (module.js:542:28) 之后在 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)at Module.require (module.js:497:17)at require (internal/module.js:20:19)at 對象。 (D:\\home\\site\\wwwroot\\node_modules\\web3-core\\src\\extend.js:27:14)at Module._compile (module.js:570:32)應用程序拋出了一個未捕獲的異常並被終止:D :\\home\\site\\wwwroot\\node_modules\\web3-core-method\\src\\index.js:285.then(async function (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)at tryModuleLoad (module.js:446:12)at Function.Module._load (module.js:438:3)at Module.require (module.js:497:17)at require (internal/module.js: 20:19)在對象。 (D:\\home\\site\\wwwroot\\node_modules\\web3-core\\src\\extend.js:27:14)at 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 進行升級解決該問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM