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

升级Storybook7.0.23+Angular16遇类型错误,applicationConfig无效求方案

Storybook 7.0.23 + Angular 16 环境提供者类型不兼容问题解决思路
  • 确认插件版本兼容性
    7.0.23虽标注支持Angular 16,但早期7.x版本可能存在适配bug。建议升级到7.x分支的最新稳定版(如7.6+),执行npm install @storybook/angular@latest --save-dev更新,同时确保@angular/*依赖版本统一为16.x。

  • 修正applicationConfig的正确用法
    不要将applicationConfig的结果直接塞入旧的providers数组,需作为装饰器在preview.ts中配置:

    import { applicationConfig } from '@storybook/angular';
    // 示例导入Angular 16的新提供者函数
    import { provideHttpClient, withInterceptors } from '@angular/common/http';
    
    export const decorators = [
      applicationConfig({
        providers: [
          provideHttpClient(withInterceptors([/* 你的拦截器 */])),
          // 其他自定义提供者
        ],
      }),
    ];
    

    所有返回EnvironmentProviders类型的提供者(如Angular 16新增的provide*系列)必须放在这里,不能单独在旧配置中声明。

  • 排查自定义提供者类型
    检查项目中自定义的providers,若有返回EnvironmentProviders的实现,必须统一放入applicationConfig的providers数组,禁止混合使用旧的providers配置字段。

  • 清理缓存并重建
    执行npm run storybook -- --no-manager-cache启动Storybook,或手动删除node_modules/.cache/storybook目录,避免缓存残留导致旧配置生效。

  • 移除冲突的旧配置
    检查.storybook/main.ts中是否存在angularOptions.providers字段,该配置在Storybook 7中已废弃,需彻底删除,确保所有提供者配置都迁移到preview.ts的applicationConfig中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:03:20