You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将新建Azure Function部署至Linux应用的问题求助

解决Linux环境Azure Function服务器端构建失败(tsc not found)的问题

错误根源分析

从部署日志的关键报错/tmp/zipdeploy/extracted/node_modules/.bin/tsc: ../typescript/bin/tsc: not found可以确定:服务器端执行npm run build时找不到TypeScript可执行文件,核心原因是依赖配置或构建环境的设置冲突。

解决方案

1. 确保TypeScript已添加为项目依赖

执行以下命令将TypeScript安装为项目开发依赖,确保package.json中包含该依赖项:

npm install typescript --save-dev

注意:服务器端构建时会重新安装所有依赖,因此本地无需保留node_modules,但必须保证package.json中明确声明了typescript依赖。

2. 修正Azure Function应用的构建环境设置

你当前将ENABLE_ORYX_BUILD设为false,但Linux环境下需依赖ORYX工具完成服务器端构建,需将其改为true,配合已设置的SCM_DO_BUILD_DURING_DEPLOYMENT=true使用:

az functionapp config appsettings set --name <你的函数应用名称> --resource-group <资源组名称> --settings ENABLE_ORYX_BUILD=true

3. 调整package.json的build脚本

修改scripts中的build命令,指定tsc的完整相对路径,避免路径解析异常:

{
  "scripts": {
    "build": "./node_modules/.bin/tsc",
    "start": "func start"
  }
}

4. 优化部署配置(以GitHub Actions为例)

确保部署动作不指定预构建包,让服务器端自动触发构建:

- name: Deploy to Azure Functions
  uses: azure/functions-action@v1
  with:
    app-name: '<你的函数应用名称>'
    publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
    scm-do-build-during-deployment: true

5. 清理服务器端缓存

通过Kudu控制台(https://<你的函数应用名>.scm.azurewebsites.net)进入Debug console > Bash,执行以下命令清理旧缓存:

rm -rf /home/site/wwwroot/*
rm -rf /tmp/zipdeploy

完成以上步骤后重新部署,即可解决tsc找不到的问题,实现Linux环境下的服务器端构建。

内容的提问来源于stack exchange,提问作者rjjdv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:15:37