Open3

Vue, Storybookでimport { Component } from 'vue'したときのエラー

bisquit_devbisquit_dev

Component型をimportして使うと、ビルドもアプリケーションのランタイムは通っても、Storybookでエラーになる。

import { Component } from 'vue';

SyntaxError: The requested module '/node_modules/.vite-storybook/deps/vue.js?v=47797d56' does not provide an export named 'Component'

bisquit_devbisquit_dev

対処方法:

Type only importsにするとエラーが出なくなる。

import type { Component } from 'vue';
bisquit_devbisquit_dev

詳しくないので分からないが多分Storybook(with builder-vite)はvueのランタイムで必要な関数等を.vite-storybook/deps/vue.jsに生成しているが、Componentなどのtype定義は含まない。(たぶん)

一方で import { Component } はtypeか値か判別できないのでコードに含まれ、最初のエラーが発生しているのだと思う。

type only importsにするとコードから除外されるのでエラーが出なくなる。 (たぶん)