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

Azure DevOps自定义扩展开发中的Async函数语法错误问题

解决Azure DevOps自定义扩展流水线中的"SyntaxError: Unexpected token function"错误

以下是针对问题的具体排查和解决步骤:

1. 确认流水线Node版本实际生效

  • 把Node.js tool installer步骤放在自定义任务执行的最前面,确保后续步骤使用指定的Node版本
  • 在自定义任务前添加命令步骤,打印当前Node和npm版本:
    node --version
    npm --version
    
    对比本地开发环境的版本,确认两者一致
  • 检查自定义任务的task.json文件,若execution节点中指定了node版本范围(比如"node": ">=14.x"),需确保流水线安装的Node版本满足要求——这个配置会覆盖流水线全局的Node版本

2. 排查代码语法兼容性

  • "Unexpected token function"大多是因为代码使用了当前Node版本不支持的语法,比如async function(Node 7.6以下不支持)、带默认参数的函数等
  • 对比本地和流水线的Node版本,核对代码中ES6+语法的版本支持情况
  • 如果必须使用高版本语法,要么升级流水线Node版本,要么用Babel等工具将代码转译为兼容目标Node版本的语法

3. 检查自定义任务执行配置

  • 打开task.json,确认execution.node.script指向的脚本文件是打包后的产物,而非未转译的源码
  • 若任务依赖npm包,确保流水线中执行了npm install步骤,且安装的依赖版本与本地一致

4. 验证打包与部署一致性

  • 本地测试时如果运行的是打包后的代码,确保流水线部署的是相同的打包产物,而非直接上传源码
  • 检查打包脚本(如webpack、rollup)的配置,确认所有代码文件都被正确转译、打包,没有遗漏未处理的ES6+语法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:44:58