Storybook: Option CLI pour start-storybook pour ne pas ouvrir le navigateur

Créé le 20 mars 2019  ·  31Commentaires  ·  Source: storybookjs/storybook

Votre demande de fonctionnalité est liée à un problème ?
Je redémarre start-storybook de temps en temps pour différentes raisons, allant de la modification de la configuration au travail sur d'autres choses. Néanmoins, je ne ferme pas l'onglet de mon navigateur de contes. Et comme start-storybook ouvre un nouvel onglet de navigateur à chaque démarrage, ma barre d'onglets se remplit de plusieurs onglets de livre de contes entre les autres onglets. C'est ennuyeux et conduit à la confusion et au temps de nettoyage des onglets...

J'ai aussi remarqué que mes collègues faisaient les mêmes choses entraînant les mêmes problèmes...
Et j'ai été un peu surpris de ne pas trouver d'option pour ne pas ouvrir le navigateur...

Je sais, il y a --ci pour ignorer les invites interactives et ne pas ouvrir le navigateur, mais il ignore également les invites interactives. Bien que je n'aie pas encore vu d'invites interactives, l'utilisation du mode ci pour un usage quotidien ne me semble pas juste...

Décrivez la solution que vous souhaitez

start-server --no-open devrait être construit et utilisé comme d'habitude mais n'ouvre pas la fenêtre du navigateur.

Décrivez les alternatives que vous avez envisagées

L'ouverture du navigateur avec start-storybook doit être désactivée par défaut et peut être activée en utilisant --open .

Webpack prend en charge les indicateurs --open / --no-open qui sont également mis en miroir par d'autres CLI qui utilisent webpack en interne.
angular cli et vue cli offrent les mêmes indicateurs et - comme webpack-dev-server - n'ouvrent pas le navigateur par défaut.

De mon point de vue personnel, ouvrir le navigateur par défaut est une mauvaise pratique opiniâtre.
Mais je sais, il y a différentes opinions à ce sujet... :)

Êtes-vous en mesure d'aider à concrétiser cette fonctionnalité ?
Oui, je pourrais creuser là-dedans et faire un PR.

Contexte supplémentaire
Quelqu'un veut une capture d'écran de la barre d'onglets de mon navigateur remplie d'onglets de livre de contes ? ;)

BREAKING CHANGE cli feature request todo

Commentaire le plus utile

personnellement, je préférerais que --no-open soit la valeur par défaut

Tous les 31 commentaires

Salut @simbo. AFAIK, l'option --ci fait exactement cela.

Proposez-vous :

  • le renommer ou l'aliaser en --no-open
  • le faire true par défaut ?

Vraisemblablement... :)

Alias. Je suis d' --no-open pour ajouter un alias --ci pour rendre la fonctionnalité plus détectable. Nous pourrions également en faire un indicateur distinct si, à un moment donné, nous ne voulons pas faire plus de choses lorsque nous sommes dans CI, à part ne pas ouvrir le navigateur.

Valeur par défaut. Quant à changer la valeur par défaut en --no-open , je ne m'y oppose pas, bien que ce serait un changement décisif, nous voudrions donc le faire dans la version 6.0. Je poste ce problème sur le #maintenance Discord donc j'espère que nous pourrons obtenir un consensus. Si c'est le cas, c'est un changement trivial, mais il faudra probablement un certain temps pour le publier.

Ce n'est peut-être pas la même chose. Je pense que l'ARC gère cela d'une manière gracieuse et pourrait être adoptée. Les principales différences sont :

  • ciblez l'onglet déjà ouvert au lieu d'en ouvrir un nouveau à chaque fois.
  • définir le navigateur préféré ou ne pas ouvrir -> fichier .env
  • privilégiez Chrome par rapport aux navigateurs par défaut (par exemple pour les personnes qui naviguent avec un navigateur différent de celui qu'elles développent, dont il semble qu'il y en ait beaucoup - Chrome reste un pari plus sûr pour la majorité).

Documentation pertinente de l'

Pour moi, start-storybook ouvre un onglet dans une fenêtre en arrière-plan d'un navigateur différent chaque fois que je le redémarre.

il ignore également les invites interactives

Un exemple d'une telle invite concerne l'exécution de Storybook sur un port alternatif lorsque celui demandé est occupé. Cela peut être très utile parfois. Donc je pense que --no-open ne devrait pas être un alias pour --ci . Il ne doit désactiver que l'ouverture

privilégier Chrome par rapport aux navigateurs par défaut

Ouais, c'est pourquoi je n'ai pas copié cette approche telle quelle

personnellement, je préférerais que --no-open soit la valeur par défaut

Salut à tous! On dirait qu'il n'y a pas eu grand chose sur ce sujet ces derniers temps. S'il y a encore des questions, des commentaires ou des bugs, n'hésitez pas à continuer la discussion. Malheureusement, nous n'avons pas le temps d'aborder chaque problème. Nous sommes toujours ouverts aux contributions, veuillez donc nous envoyer une demande de tirage si vous souhaitez aider. Les problèmes inactifs seront fermés après 30 jours. Merci!

Est-ce que quelqu'un préfère le comportement actuel? Sinon, je pense que nous pouvons faire le changement

Je fais. En fait, je m'y fie un peu pour indiquer que le livre de contes a fini de se construire

peut-être que nous fournissons simplement les deux indicateurs cli : --open et --no-open et permettons de configurer cela une fois que storybook.config.js atterri.

Je préférerais également un indicateur --no-open. Faites tout ce qui est actuellement par défaut, ignorez simplement l'ouverture d'un nouveau navigateur. J'ai TRÈS souvent une fenêtre existante ouverte mais je dois fermer et redémarrer le processus du livre de contes (en raison de changements de configuration, etc.), je ne peux donc pas compter sur le redémarrage automatique. Dans ces cas, je ne veux pas d'un nouveau navigateur.

@kutenai Pouvez-vous simplement courir avec --ci ? La discussion ici est de savoir si ce comportement doit être le comportement par défaut.

Cela semble bien fonctionner pour moi. Peut-être que l'option est tout simplement trompeuse, car elle implique en quelque sorte qu'elle en fait "plus" que je ne le souhaite, mais en pratique, cela semble bien fonctionner.

FWIW, create-react-app vous permet de définir une variable d'environnement BROWSER pour choisir le navigateur à ouvrir, ou none pour empêcher tout navigateur de s'ouvrir. Cela pourrait valoir la peine de se renseigner

La discussion ici est de savoir si ce comportement doit être le comportement par défaut.

En fait, vous avez aimé mon commentaire qui dit que cela devrait être une option distincte

En fait, vous avez aimé mon commentaire qui dit que cela devrait être une option distincte

Oui, je suis absolument d' --no-open faire de

Le --no-open par défaut semble être une valeur par défaut sensée, honnêtement, ouvrir une fenêtre de navigateur par défaut semble être principalement destiné au flash lors d'une conférence et ne fait qu'ennuyer les développeurs qui rechargent cette commande assez souvent.

Pour le moment:
Je suppose que je vais utiliser le drapeau --ci .

J'aimerais également que la valeur par défaut ne soit pas d'ouvrir le navigateur, et ma première supposition était que je pourrais ajouter BROWSER=none comme cra -- donc cela pourrait valoir la peine d'adopter cette méthode pour plus de cohérence. Je ne suis peut-être pas le seul à le deviner avant de regarder la doc.

Ma compréhension du comportement start de react-script est que par défaut, il ouvre un onglet et s'il y en a un déjà ouvert, il réutilise cet onglet.

J'adore ce comportement. Si j'ai travaillé sur un projet à travers des modifications de code et des plantages inévitables d'applications/webpacks, je n'ai pas à m'inquiéter de gonfler mes fenêtres avec de nouveaux onglets de la même application ou de retourner un indicateur pour ouvrir un nouvel onglet.

Nous devons également faire attention à ne pas avoir deux commandes à exécuter pendant les workflows de développement normaux : start-storybook --open au démarrage initial, puis start-storybook [--no-open] sur les commandes suivantes. Si la réutilisation des onglets est possible, ce n'est pas un problème car mon flux de travail serait alors toujours start-storybook --open .

Je préférerais que la valeur par défaut de Storybook soit d'ouvrir un onglet, mais ça va si vous décidez de ne pas le faire. J'aimerais bien voir le comportement de réutilisation des onglets se manifester.

@JonKrone Malheureusement, il ne réutilise que l'onglet existant sur HMR pour autant que je sache. Si je réexécute la CLI, elle ouvre toujours un nouvel onglet pour moi (au moins sur Chrome/OSX).

Je n'arrive pas à faire fonctionner --ci. Ouvre toujours un nouvel onglet dans Chrome à chaque fois que je le démarre. Je suis sur 5.2.1 avec vue.

@SebbeJohansson pouvez-vous vérifier ? travailler pour moi

@shilman Je viens de le faire avec une toute nouvelle configuration juste pour être sûr.
\My-Storybook>npm run storybook --ci
Résultats dans un nouvel onglet dans mon navigateur principal.

@SebbeJohansson lors de l'utilisation de npm run , vous devez ajouter -- à tous les arguments que vous souhaitez transmettre à la commande sous-jacente :

npm run storybook -- --ci

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

Tant que le redémarrage ne cible pas correctement la même fenêtre/onglet du navigateur (et/ou le rechargement), l'ouverture d'une nouvelle fenêtre par défaut est tout simplement frustrante pour moi. Je pense que c'est un anti-modèle que beaucoup de packages utilisent pour être fantaisistes ou quelque chose du genre . Nous sommes tous capables d'ouvrir un navigateur au moment où nous savons comment gérer npm.

Après la construction, il affiche une belle boîte avec 2 URL sur lesquelles je peux ctrl-clic, et la plupart d'entre nous utilisent probablement start-storybook tout en développant et en redémarrant beaucoup .

TLDR : vote positif de --ci par défaut et ouverture dans le navigateur par indicateur

recommencer beaucoup

Pourquoi as-tu besoin de cela? start-storybook devrait choisir vos modifications. Si ce n'est pas le cas, cela ressemble à un problème en soi.

Nous sommes tous capables d'ouvrir un navigateur

Bien sûr , vous savez comment ouvrir le navigateur, le problème est que vous ne savez pas quand. Dans les grands projets, la première construction peut prendre un certain temps, et rester assis et attendre la boîte dans la console peut ne pas être une option

Pourquoi as-tu besoin de cela? start-storybook devrait choisir vos modifications. Si ce n'est pas le cas, cela ressemble à un problème en soi.

Cela devrait être le cas, et c'est le cas pour la plupart des changements, mais pas tous les changements. Je suis actuellement en train de mettre en place un nouveau livre de contes et de le manipuler, alors oui, je me suis retrouvé avec 10 onglets en quelques minutes.

Bien sûr, vous savez _comment_ ouvrir le navigateur, le problème est que vous ne savez pas _quand_. Dans les grands projets, la première construction peut prendre un certain temps, et rester assis et attendre la boîte dans la console peut ne pas être une option

Je pourrais toujours ouvrir le navigateur, il me dira simplement "Connexion refusée". Je pense qu'il est plus ennuyeux qu'après une minute ou deux, un navigateur apparaisse soudainement pendant que je fais autre chose.
Il pourrait y avoir un commentaire dans la case, il y a un drapeau --automagically-open-in-browser (titre provisoire) que vous pouvez activer.

Remarque Je vois ce modèle dans l'ensemble de l'industrie et, lorsqu'il est utilisé, des problèmes et des questions (débordement de pile) apparaissent partout pour savoir comment le désactiver. Je n'aime pas du tout le modèle par défaut , d'autant plus que cibler le même onglet n'est pas une technologie solide. Pendant ce temps, une fois ouvert, une déconnexion du « serveur » pourrait commencer à interroger et se recharger une fois qu'il reviendra.

Proposition : Au lieu de faire tout cela, pouvons-nous simplement ajouter un message à la sortie de la CLI informant l'utilisateur de l'option --ci s'il ne veut pas qu'il ouvre le navigateur ? Le comportement actuel est bien meilleur grâce aux améliorations de

Où pouvons-nous voir ces améliorations?

Disponible en version 6.0-bêta. https://github.com/storybookjs/storybook/pull/10329

Cette page vous a été utile?
0 / 5 - 0 notes