您的功能请求是否与问题有关?
我不时重新启动start-storybook
出于不同的原因,从更改配置到处理其他事情。 尽管如此,我不会关闭我的故事书浏览器选项卡。 当start-storybook
每次启动时都会打开一个新的浏览器选项卡,我的选项卡栏会在其他选项卡之间填满多个故事书选项卡。 这很烦人,会导致混乱和标签清理时间......
我也注意到我的同事做同样的事情导致同样的问题......
我有点惊讶,我找不到不打开浏览器的选项......
我知道,有--ci
可以跳过交互式提示而不打开浏览器,但它也会跳过交互式提示。 虽然我还没有看到任何交互提示,但是日常使用 ci 模式感觉不太对劲……
描述您想要的解决方案
start-server --no-open
应该像往常一样构建和服务,但不会打开浏览器窗口。
描述你考虑过的替代方案
默认情况下应禁用使用start-storybook
打开浏览器,可以使用--open
启用。
Webpack 支持--open
/ --no-open
标志,这些标志也被其他内部使用 webpack 的 CLI 镜像。
angular cli 和 vue cli 提供相同的标志,并且 - 就像 webpack-dev-server - 默认情况下不打开浏览器。
从我个人的角度来看,默认情况下打开浏览器是一种固执的不良做法。
但我知道,对此有不同的看法...... :)
您能否协助将该功能变为现实?
是的,我可以深入研究并制作 PR。
附加上下文
有人想要我的浏览器标签栏的屏幕截图吗? ;)
嗨@simbo。 AFAIK --ci
选项正是这样做的。
您是否提议:
--no-open
true
吗?好像是这样... :)
别名。 我可以将--no-open
别名添加到--ci
以使该功能更易于发现。 如果在某些时候除了不打开浏览器之外,在 CI 中还有更多我们不想做的事情,我们也可以将其设置为一个单独的标志。
默认值。 至于将默认值更改为--no-open
,我不反对它,尽管这将是一个重大更改,因此我们希望在 6.0.0 中进行。 我在#maintenance
Discord 中发布了这个问题,希望我们能达成一些共识。 如果是这样,这是一个微不足道的变化,但可能需要一段时间才能发布。
它可能不一样。 我认为 CRA 以一种优雅的方式处理这个问题并且可以被采用。 主要区别是:
相关CRA文件
对我来说,start-storybook 每次重新启动时都会在不同浏览器的背景窗口中打开一个选项卡。
它还跳过交互式提示
此类提示的一个示例是当请求的端口繁忙时,将 Storybook 运行为替代端口。 这有时非常有用。 所以我认为, --no-open
不应该是--ci
的别名。 它应该只禁用开放
比默认浏览器更喜欢 Chrome
是的,这就是为什么我没有照原样复制这种方法
我个人更喜欢--no-open
作为默认值
大家好! 最近这个问题似乎没有太多进展。 如果还有问题、意见或错误,请随时继续讨论。 不幸的是,我们没有时间处理每一个问题。 我们始终对贡献持开放态度,因此如果您愿意提供帮助,请向我们发送请求请求。 非活动问题将在 30 天后关闭。 谢谢!
有人更喜欢当前的行为吗? 如果没有,我想我们可以做出改变
我做。 实际上我有点依赖它作为故事书已经完成构建的迹象
也许我们只提供两个 cli 标志: --open
和--no-open
并允许在storybook.config.js
登陆后进行配置。
我也更喜欢 --no-open 标志。 执行当前默认的所有操作,只需跳过打开新浏览器的步骤。 我常需要打开现有的窗口,但必须关闭并重新启动该故事书过程(由于配置变化等),所以我不能依靠自动重启。 在这些情况下,我只是不想要一个新的浏览器。
@kutenai你能用--ci
吗? 这里的讨论是该行为是否应该成为默认行为。
它对我来说似乎很好用。 也许这个选项只是误导,因为它暗示它比我想要的“更多”,但在实践中,它似乎工作正常。
FWIW,create-react-app 允许您设置BROWSER
变量以选择要打开的浏览器,或none
以防止打开任何浏览器。 可能值得研究
这里的讨论是该行为是否应该成为默认行为。
你实际上喜欢我的评论,它说它应该是一个单独的选项
你实际上喜欢我的评论,它说它应该是一个单独的选项
是的,我绝对赞成将--no-open
设为单独的选项。 我也认为它应该是默认值,这就是我希望在 6.0 上达成共识
默认的--no-open
似乎是一个理智的默认设置,老实说,默认情况下打开浏览器窗口似乎主要是为了在会议演讲中使用 flash 并且只会惹恼实际上经常重新加载此命令的开发人员。
目前:
我想我会使用--ci
标志。
我还希望默认情况下不打开浏览器,而且我的第一个猜测是我可以像 cra 一样添加BROWSER=none
- 所以为了一致性,采用这种方法可能是值得的。 在查看文档之前,我可能不是唯一一个会猜到这一点的人。
我对 react-script 的start
行为的理解是,默认情况下它会打开一个选项卡,如果已经打开了一个选项卡,它会重新使用该选项卡。
我喜欢这种行为。 如果我一直在通过代码更改和不可避免的应用程序/webpack 崩溃来处理一个项目,我不必担心使用同一应用程序的新选项卡或翻转标志来打开新选项卡使我的窗口膨胀。
我们也应小心,有两个命令在正常的开发工作流程运行的: start-storybook --open
上的起步,然后start-storybook [--no-open]
在随后的命令。 如果可以重用选项卡,这不是问题,因为我的工作流程将始终为start-storybook --open
。
我希望 Storybook 的默认设置是打开一个选项卡,但如果你们都决定不打开也没关系。 不过,我希望看到选项卡重用行为得以实现。
@JonKrone不幸的是,据我所知,它只重用了 HMR 上的现有选项卡。 如果我重新运行 CLI,它总是为我打开一个新标签(至少在 Chrome/OSX 上)。
我无法让 --ci 工作。 每次启动时仍会在 chrome 中打开一个新标签。 我在 5.2.1 上使用 vue。
@SebbeJohansson你能仔细检查一下吗? 为我工作
@shilman我刚刚做了一个全新的设置,只是为了确保。
\My-Storybook> npm run storybook --ci
结果在我的主浏览器中出现一个新选项卡。
@SebbeJohansson使用npm run
,您必须在要传递给底层命令的所有参数前添加--
:
npm run storybook -- --ci
只要重新启动没有正确针对同一个浏览器窗口/选项卡(和/或重新加载它),默认情况下打开一个新窗口对我来说只是令人沮丧。 我认为这是一种反模式,很多包都在用它来花哨什么的。 当我们知道如何处理 npm 时,我们都能够打开浏览器。
建设后,它显示了2网址一个不错的箱子是我可以在按住Ctrl键单击,和我们大多数人可能使用start-storybook
同时开发并重新启动了很多。
TLDR:将--ci
设为默认值并通过标志在浏览器中打开
重新启动很多
你为什么需要那个? start-storybook
应该选择您的更改。 如果没有,这听起来像是一个问题。
我们都有能力打开浏览器
你当然知道怎么打开浏览器,问题是你不知道什么时候打开。 在大型项目中,首次构建可能需要相当长的时间,坐在控制台中等待框可能不是一种选择
你为什么需要那个?
start-storybook
应该选择您的更改。 如果没有,这听起来像是一个问题。
它应该,并且对大多数更改执行,但不是所有更改。 我目前正在设置一本新的 Storybook 并摆弄它,所以是的,我在几分钟内完成了 10 个标签。
你当然知道_how_打开浏览器,问题是你不知道_when_。 在大型项目中,首次构建可能需要相当长的时间,坐在控制台中等待框可能不是一种选择
我仍然可以打开浏览器,它只会告诉我“连接被拒绝”。 我认为更令人讨厌的是,在一两分钟后突然弹出浏览器,而我正在做其他事情。
框中可能有评论,您可以启用--automagically-open-in-browser
(工作标题)标志。
注意我在整个行业都看到了这种模式,在使用的地方,问题和 (stackoverflow) 问题随处可见,如何禁用它。 我非常不喜欢这种模式作为默认模式,特别是因为针对同一个选项卡并不是可靠的技术。 同时,一旦打开,与“服务器”的断开连接就可以开始轮询并在它再次恢复时重新加载。
建议:如果他们不希望它打开浏览器,我们是否可以只在 CLI 输出中添加一条消息,通知用户--ci
选项,而不是执行所有这些操作? 由于@yannbf的改进,当前的行为要好得多
我们在哪里可以看到这些改进?
在 6.0-beta 中可用。 https://github.com/storybookjs/storybook/pull/10329
最有用的评论
我个人更喜欢
--no-open
作为默认值