node.js - 如何修复 Linux 中 NodeJs Azure Functions 上的 "Error:/home/site/wwwroot/node_modules/canvas/build/Release/canvas.node: invalid ELF header"?

标签 node.js azure azure-functions azure-deployment azure-functions-core-tools

我正在尝试在 NodeJs 中部署 AzureFunctions,但它在 Azure 上不起作用。 我的应用程序是在 Linux 上运行的 v3 函数。

部署完成后,我收到此 500 错误:

Error: /home/site/wwwroot/node_modules/canvas/build/Release/canvas.node: invalid ELF header

只有当我执行此导入时才会发生:

 import ChartDataLabels from 'chartjs-plugin-datalabels';
 const canvasRenderService = new CanvasRenderService(width, height, chartCallback);

 const chartCallback = (ChartJS) => {
     ChartJS.register(require('chartjs-plugin-datalabels'))
 };
 const jsdom = require("jsdom");
 const { JSDOM } = jsdom;
 const { document } = (new JSDOM(`...`)).window;

有人可以帮我吗?

它(仅)在我的机器上工作:(

编辑:当我通过 Linux 子系统进行部署时它可以工作。 我希望这会对某人有所帮助。

最佳答案

Azure 函数将不包含 Node_modules 部署到 Azure 中。因为Node_modules目录包含非常大的文件。您可以包括您的package.json在您的函数目录中并运行 npm install就像您通常使用 Kudu 处理 Node.js 项目一样 (https://<function_app_name>.scm.azurewebsites.net )或 Azure 门户中的控制台

检查Dependency management了解更多信息。

请参阅此处Link 1 & Link 2

关于node.js - 如何修复 Linux 中 NodeJs Azure Functions 上的 "Error:/home/site/wwwroot/node_modules/canvas/build/Release/canvas.node: invalid ELF header"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70118141/

相关文章:

azure - 为什么 mywebsite.dll.config 没有包含在我的 cspkg 中?

c# - 使用 Azure Function v2 自定义 Application Insight TelemetryInitializer

从源代码管理部署时的 Azure Function 'Error: The function runtime is unable to start'

azure - 免费套餐应用服务计划下 Azure Webjob 与 Azure 功能的成本计算?

node.js - 是否有相当于 JGroups 的 Node.js 来提供可靠的多播?

node.js - 使用字符串引号打印 EJS 变量

c# - 为 P1 SQL 数据库创建 Azure ClusteredColumnStoreIndex 的 C# SMO 方法是什么

azure - 在 azure 应用服务上使用 NetOffice.PowerPointApi

javascript - 使用 Joi 和 nodeJS 验证嵌套对象中的唯一键对

ios - 不变违规 : Native component for "RCTImageView" does not exist