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

如何阻止Vite React组件库构建Storybook时生成d.ts文件?

解决Storybook构建时自动生成.d.ts文件的问题

以下是两种可行的解决方法,按需选择即可:

方案一:根据环境变量动态启用dts插件

Storybook启动时会自动设置STORYBOOK=true环境变量,我们可以利用这一点,仅在非Storybook环境加载dts插件:

修改你的vite.config.ts:

import { defineConfig } from "vite"
import { resolve } from "path"
import dts from "vite-plugin-dts"
import { viteStaticCopy } from "vite-plugin-static-copy"

export default defineConfig(() => {
  const isStorybook = process.env.STORYBOOK === "true";
  
  const plugins = [
    viteStaticCopy({
      targets: [
        { src: resolve(__dirname, "src/static"), dest: "./" },
        { src: resolve(__dirname, "./README.md"), dest: "./" },
        { src: resolve(__dirname, "./package.json"), dest: "./" },
      ],
    }),
  ];

  // 仅在组件库构建时启用dts插件
  if (!isStorybook) {
    plugins.push(dts({ insertTypesEntry: true }));
  }

  return {
    publicDir: false,
    build: {
      lib: {
        entry: resolve(__dirname, "src/index.ts"),
        name: "kb-lib",
        fileName: "index",
      },
      rollupOptions: {
        external: ["react"],
        output: {
          globals: { react: "React" },
          assetFileNames: "static/styles/components.css",
        },
      },
    },
    plugins,
  };
})

方案二:在Storybook配置中移除dts插件

如果环境变量判断不生效,可直接在Storybook的Vite最终配置中剔除dts插件:

修改或创建.storybook/main.ts:

import type { StorybookConfig } from "@storybook/react-vite";

const config: StorybookConfig = {
  stories: ["../src/**/*.stories.@(js|jsx|ts|tsx)"],
  addons: ["@storybook/addon-links", "@storybook/addon-essentials"],
  framework: {
    name: "@storybook/react-vite",
    options: {},
  },
  async viteFinal(config) {
    if (config.plugins) {
      // 过滤掉dts插件
      config.plugins = config.plugins.filter(
        plugin => plugin.name !== "vite-plugin-dts"
      );
    }
    return config;
  },
};

export default config;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:39:55