Storybook: ブラウザを開かないようにするstart-storybookのCLIオプション

作成日 2019年03月20日  ·  31コメント  ·  ソース: storybookjs/storybook

機能リクエストは問題に関連していますか?
設定の変更から他の作業まで、さまざまな理由でstart-storybookを時々再起動します。 それでも、ストーリーブックのブラウザタブを閉じません。 また、 start-storybookが起動するたびに新しいブラウザタブを開くと、タブバーが他のタブの間にある複数のストーリーブックタブでいっぱいになります。 それは煩わしく、混乱とタブのクリーンアップ時間につながります...

また、同僚が同じことをしていることに気づき、同じ問題が発生しました...
そして、ブラウザを開かないオプションが見つからなかったことに少し驚いた...

インタラクティブプロンプトをスキップしてブラウザを開かないための--ciがありますが、インタラクティブプロンプトもスキップします。 インタラクティブなプロンプトはまだ表示されていませんが、毎日の使用にciモードを使用するのは適切ではありません...

希望するソリューションを説明してください

start-server --no-openは通常どおりにビルドおよび機能する必要がありますが、ブラウザウィンドウは開きません。

検討した代替案を説明してください

start-storybookブラウザを開くことはデフォルトで無効になっているはずであり、 --openを使用して有効にできます。

Webpackは--open / --no-openフラグをサポートします。これらのフラグは、Webpackを内部で使用する他のCLIによってもミラーリングされます。
anglecliとvuecliは同じフラグを提供し、webpack-dev-serverのように、デフォルトではブラウザーを開きません。

私の個人的な観点からは、デフォルトでブラウザを開くことは、悪い習慣であると考えられています。
しかし、私は知っています、これについてはさまざまな意見があります... :)

機能を実現するのを支援できますか?
はい、私はこれを掘り下げてPRをすることができました。

追加のコンテキスト
ストーリーブックのタブでいっぱいになったブラウザのタブバーのスクリーンショットが欲しい人はいますか? ;)

BREAKING CHANGE cli feature request todo

最も参考になるコメント

個人的には--no-openをデフォルトにしたいと思います

全てのコメント31件

こんにちは@simbo。 --ciオプションはまさにそれを行います。

あなたは提案していますか:

  • 名前を変更するか、 --no-openエイリアスします
  • デフォルトでtrueしますか?

そのようです... :)

エイリアス。 --no-openエイリアスを--ciに追加して、機能を見つけやすくすることができます。 また、ブラウザーを開かないこと以外に、CIにいるときにやりたくないことが他にもある場合は、それを別のフラグにすることもできます。

デフォルト値。 デフォルトを--no-openに変更することに関しては、私はそれに反対していませんが、それは重大な変更になるので、6.0でそれを実行したいと思います。 私はこの問題を#maintenance Discordに投稿しているので、コンセンサスが得られることを願っています。 もしそうなら、それは些細な変更ですが、リリースするのにおそらくしばらく時間がかかるでしょう。

同じではないかもしれません。 CRAはこれを優雅に処理し、採用できると思います。 主な違いは次のとおりです。

  • 毎回新しいタブを開くのではなく、すでに開いているタブをターゲットにします。
  • 優先ブラウザを設定するか、開かない->。envファイル
  • デフォルトのブラウザよりもChromeを優先します(たとえば、開発したブラウザとは異なるブラウザで閲覧する人にとっては、多くのブラウザが存在するようです。Chromeは依然として大多数にとってより安全な賭けです)。

関連するCRAドキュメント

私の場合、start-storybookは、再起動するたびに、別のブラウザのバックグラウンドウィンドウでタブを開きます。

また、インタラクティブなプロンプトをスキップします

このようなプロンプトの1つの例は、要求されたポートがビジーのときにStorybookの代替ポートを実行することです。 それは時々非常に便利です。 したがって、 --no-open--ciエイリアスにするべきではないと思います。 開口部を無効にするだけです

デフォルトのブラウザよりもChromeを優先する

ええ、そういうわけで私はそのアプローチをそのままコピーしませんでした

個人的には--no-openをデフォルトにしたいと思います

皆さんこんにちは! 最近、この問題はあまり進んでいないようです。 それでも質問、コメント、バグがある場合は、遠慮なく議論を続けてください。 残念ながら、すべての問題に取り組む時間はありません。 私たちはいつでも寄付を受け付けていますので、サポートが必要な場合はプルリクエストを送信してください。 非アクティブな問題は30日後にクローズされます。 ありがとう!

誰かが現在の行動を好みますか? そうでなければ、私たちは変更を加えることができると思います

そうです。 実はストーリーブックが完成したことを示すものとしてちょっと頼りにしています

--open--no-open両方のCLIフラグを提供し、 storybook.config.jsが到着したらこれを構成できるようにするだけかもしれません。

--no-openフラグも好みます。 新しいブラウザを開くのをスキップして、現在デフォルトのすべてを実行します。 私は非常に多くの場合、既存のウィンドウを開いているが、私は自動再起動に頼ることができないので、(などの構成変更に起因する)童話プロセスを閉じて再起動する必要があります。 そのような場合、私は新しいブラウザが欲しくありません。

@kutenai --ci実行できますか? ここでの議論は、その振る舞いをデフォルトにするべきかどうかです。

それは私にとってはうまくいくようです。 たぶん、このオプションは、私が望むよりも「多く」のことを意味するので、誤解を招くだけかもしれませんが、実際には、うまく機能しているようです。

FWIW、create-react-appを使用すると、 BROWSER env変数を設定して開くブラウザーを選択したり、 noneを設定してブラウザーが開かないようにしたりできます。 調べる価値があるかもしれません

ここでの議論は、その振る舞いをデフォルトにするべきかどうかです。

あなたは実際にそれが別のオプションであるべきだと言っている私のコメントが好きでした

あなたは実際にそれが別のオプションであるべきだと言っている私のコメントが好きでした

ええ、私は--no-openを別のオプションにすることに絶対に参加しています。 また、これをデフォルトにする必要があると思います。これが、6.0のコンセンサスを得たいと思っています。

--no-openがデフォルトであるのは正しいデフォルトのようです。正直なところ、デフォルトでブラウザウィンドウを開くのは、ほとんどが会議の会話でのフラッシュ用のようで、実際にこのコマンドを頻繁にリロードする開発者を困らせるだけです。

今のところ:
--ciフラグを使用すると思います。

また、デフォルトでブラウザを開かないようにしたいと思います。最初の推測では、craのようにBROWSER=none追加できるので、一貫性を保つためにその方法を採用する価値があるかもしれません。 ドキュメントを見る前にそれを推測するのは私だけではないかもしれません。

私がreact-scriptのstart動作を理解しているのは、デフォルトでタブが開き、すでに開いているタブがある場合はそのタブを再利用するということです。

私はその行動が大好きです。 コードの変更や避けられないアプリ/ウェブパックのクラッシュによってプロジェクトに取り組んできた場合、同じアプリの新しいタブでウィンドウが肥大化したり、フラグを反転して新しいタブを開いたりすることを心配する必要はありません。

また、通常のdevのワークフロー中に実行するために2つのコマンドを持つように注意する必要があります: start-storybook --open初期起動時に、次にstart-storybook [--no-open]後続のコマンドで。 タブの再利用が可能な場合、ワークフローは常にstart-storybook --openなるため、これは問題ではありません。

Storybookのデフォルトではタブを開くことをお勧めしますが、そうしないことにした場合は問題ありません。 ただし、タブの再利用動作が実現することを望んでいます。

@JonKrone残念ながら、私が知る限り、HMRの既存のタブのみを再利用します。 CLIを再実行すると、常に新しいタブが開きます(少なくとも、Chrome / OSXでは)。

--ciを動作させることができません。 それでも、起動するたびにChromeで新しいタブが開きます。 私はvueで5.2.1を使用しています。

@SebbeJohansson再確認できますか? 私のために働いています

@shilman念のため、まったく新しい設定で行いました。
\ My-Storybook> npm run storybook --ci
プライマリブラウザに新しいタブが表示されます。

@SebbeJohansson npm runを使用する場合、基になるコマンドに渡すすべての引数の前に--追加する必要があります。

npm run storybook -- --ci

https://docs.npmjs.com/cli/run-script

再起動が同じブラウザウィンドウ/タブを適切にターゲットにしていない(および/またはそれをリロードしていない)限り、デフォルトで新しいウィンドウを開くことは私にとってイライラするだけです。 これは、多くのパッケージが派手なものとして使用しているアンチパターンだと思います。 npmの処理方法を知るまでに、私たちは皆ブラウザを開くことができます。

ビルドした後、2つのURLが入った素敵なボックスが表示されます。Ctrlキーを押しながらクリックすると、ほとんどの場合、開発と再起動の際にstart-storybookを使用します。

TLDR:デフォルトとして--ci賛成し、フラグでブラウザで開く

たくさん再起動

なぜそれが必要なのですか? start-storybookで変更を選択する必要があります。 そうでない場合は、それ自体が問題のように聞こえます。

私たちは皆、ブラウザを開くことができます

もちろん、あなたがブラウザを開く方法を知っている、問題は、あなたがたときに知っていないということです。 大規模なプロジェクトでは、最初のビルドにかなりの時間がかかる場合があり、コンソールでボックスに座って待つだけではオプションがない場合があります

なぜそれが必要なのですか? start-storybookで変更を選択する必要があります。 そうでない場合は、それ自体が問題のように聞こえます。

すべての変更ではなく、ほとんどの変更で実行する必要があります。 私は現在、新しいストーリーブックを設定してそれをいじっているので、はい、数分で10個のタブになりました。

もちろん、ブラウザを開く方法は知っていますが、問題はいつかわからないことです。 大規模なプロジェクトでは、最初のビルドにかなりの時間がかかる場合があり、コンソールでボックスに座って待つだけではオプションがない場合があります

私はまだブラウザを開くことができました、それはただ「接続が拒否されました」と私に言うでしょう。 1、2分後、何か他のことをしているときに突然ブラウザがポップアップするのはもっと厄介だと思います。
有効にできる--automagically-open-in-browser (仮題)フラグがあるボックスにコメントがある可能性があります。

私は業界全体でこのパターンを見ていることに注意してください。使用されている場合、問題、および(stackoverflow)の質問がどこでもそれを無効にする方法をポップアップします。 特に同じタブをターゲットにすることは確かな技術ではないので、私はデフォルトとしてのパターンを大いに嫌います。 一方、一度開かれると、「サーバー」への切断はポーリングを開始し、再び起動するとリロードする可能性があります。

提案:これをすべて行う代わりに、ユーザーがブラウザーを開かないようにする場合は、ユーザーに--ciオプションを通知するメッセージをCLI出力に追加できますか? @yannbfの改善のおかげで、現在の動作ははるかに良くなってい

これらの改善はどこで見られますか?

このページは役に立ちましたか?
0 / 5 - 0 評価