已部署TypeScript函数但未在Azure门户及VS Code中显示的问题
确认
function.json已同步到dist目录
TypeScript编译仅处理.ts文件,function.json需手动复制到编译后的对应路径。检查package.json的build脚本是否包含复制命令:
示例(Windows):"scripts": { "build": "tsc && xcopy /s /y src\\functions\\*.json dist\\src\\functions\\" }示例(Linux/macOS):
"scripts": { "build": "tsc && cp -r src/functions/**/*.json dist/src/functions/" }执行
npm run build后,确认dist/src/functions下每个函数文件夹中同时存在function.json和对应的.js文件。验证Azure应用程序设置中的
AzureWebJobsFeatureFlags
本地local.settings.json的设置不会自动同步到Azure。需在Azure门户的Function App → 配置 → 应用程序设置中,添加AzureWebJobsFeatureFlags变量,值设为EnableWorkerIndexing,保存后重启Function App。检查部署路径与命令
- 使用VS Code部署时,确保选择项目根目录而非
dist目录,同时确认.vscode/settings.json中azureFunctions.deploySubpath已设为dist。 - 使用Core Tools部署时,执行以下命令确保部署正确内容:
该命令会同步本地设置并部署func azure functionapp publish <your-app-name> --publish-local-settingsdist目录下的编译产物。
- 使用VS Code部署时,确保选择项目根目录而非
核对运行时版本一致性
在Azure门户的Function App → 配置 → 常规设置中,确认运行时堆栈的Node.js版本与本地开发环境完全一致(比如本地用Node.js 18,Azure也需设置为18.x),版本不兼容会导致函数无法加载。查看Azure日志排查错误
进入Azure门户的Function App → 监测 → 日志流,查看实时运行日志。常见错误包括:函数文件路径错误、function.json配置语法错误、运行时依赖缺失等,日志会明确指出问题根源。确认函数导出格式正确
检查编译后的.js文件中,函数是否符合Azure要求的导出格式。例如HTTP触发函数:module.exports = async function (context, req) { context.res = { body: "Hello World" }; };若使用ES模块格式,需在
package.json中添加"type": "module",并按以下格式导出:export async function run(context, req) { context.res = { body: "Hello World" }; }
内容的提问来源于stack exchange,提问作者wooters

