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

使用StandardSkillBuilder报错:Alexa.SkillBuilders.standard不是函数

解决:Alexa.SkillBuilders.standard is not a function 错误

问题根源

你遇到的错误本质是依赖版本不兼容+API调用方式不对:

  • 你的ask-sdk@2.14.0和ask-sdk-core@2.7.0版本差距过大,v2.x的ask-sdk不同小版本间API存在差异。
  • 在你使用的这个早期v2版本里,StandardSkillBuilder要么还没被加入Alexa.SkillBuilders,要么根本不是通过该方式调用的。

可行解决方案

1. 统一依赖版本并修正调用方式

先把ask-sdk和ask-sdk-core的版本统一为同一个v2.x稳定版(比如升级到2.20.0),避免版本混乱。然后修正构建器的导入和调用代码:

const { SkillBuilders } = require('ask-sdk');
const standardSkillBuilder = SkillBuilders.standard();

注意是从ask-sdk包导入SkillBuilders,而非通过Alexa.SkillBuilders调用。

2. 无需更换构建器,用CustomSkillBuilder适配托管技能

既然你之前用CustomSkillBuilder配合DynamoDB能正常工作,针对托管技能无法配置默认表的问题,手动指定表名即可,完全不用更换构建器:

const { CustomSkillBuilder, DynamoDbPersistenceAdapter } = require('ask-sdk');

const persistenceAdapter = new DynamoDbPersistenceAdapter({
  tableName: '你的自定义表名',
  createTable: true // 需要自动建表就开启这个配置
});

const skillBuilder = CustomSkillBuilder()
  .withPersistenceAdapter(persistenceAdapter);

3. 清理重复依赖

尽量不要同时导入ask-sdk和ask-sdk-core,优先使用完整的ask-sdk包,避免模块冲突导致的异常。

补充说明

ask-sdk v3.x的构建器API有较大改动,但你使用的是v2.x版本,无需考虑v3的语法。这类“函数不存在”的错误,绝大多数都是版本不兼容或导入调用方式错误导致的,统一依赖版本是最直接的解决思路。

内容的提问来源于stack exchange,提问作者So.Vanara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:49:49