你的功能请求是否与问题相关?请描述
Vite提供了开发和预览服务器。Storybook不使用它,而是创建自己的服务器,这增加了不必要的依赖。
描述你希望的解决方案
关闭middlewareMode
在builder-vite
中,并使用Vite的服务器。builder-vite
可以返回服务器。如果需要,webpack构建器可以创建一个express服务器并返回。然后可以将其他中间件添加到返回的服务器中。你可以使用Vite的configureServer
钩子向Vite添加中间件。
你考虑过的替代方案是什么?
- 无响应*
你是否能够协助将这个功能实现?
我无法实现它,但可以就与Vite相关的更改提供建议
其他上下文
- 无响应*
5条答案
按热度按时间1qczuiv01#
当前的流程如下:
这个建议是关于将服务器示例化的步骤移动到构建器中。对于Vite来说,这意味着我们可以放弃Express内置的Vite服务器,减小我们的包大小,也许还能提高性能(谁知道呢)。对于Webpack来说,这意味着我们将现有的Express服务器示例化移动到Webpack构建器中。
如果这个建议可行,我喜欢它。
@shilman @ndelangen有什么想法吗?
bhmjp9jg2#
我一直在考虑进一步将构建器与核心服务器解耦,通过允许它们以自己的方式“托管事物”,然后让核心服务器重新路由流量。
这对于webpack也很有用,我们可能可以使用webpack-dev-server。
这意味着我们在启动时可能会占用多个端口?
oewdyzsn3#
我对webpack不太熟悉,但至少对于vite,我认为你可以将核心服务器中间件放在vite服务器中,这样你只需要使用一个端口。
4ngedf3f4#
在开发模式下,storybook核心服务器会打开一个与浏览器的websocket连接。我不确定这是否真的是你可以作为中间件做的事情。
如果我们走这条路,我也担心从构建器中出现的服务/中间件错误会表现为storybook错误。
将构建器进一步与核心分离,听起来是一个好方法吗?
ve7v8dk25#
嗯,我不太清楚如何从Vite开发服务器设置websocket。你可能需要一个单独的服务器来处理websocket。但理想情况下,它可以使用Node的内置http模块来实现这一点,这样我们就不需要在Vite的web服务器依赖项之外再添加
express
依赖项了。