Storybook: Opção CLI para iniciar o livro de histórias para não abrir o navegador

Criado em 20 mar. 2019  ·  31Comentários  ·  Fonte: storybookjs/storybook

Sua solicitação de recurso está relacionada a um problema?
Eu reinicio start-storybook de vez em quando por diferentes motivos, desde a alteração da configuração até o trabalho em outras coisas. No entanto, não fecho a guia do navegador do meu livro de histórias. E como start-storybook abre uma nova guia do navegador toda vez que é iniciado, minha barra de guias é preenchida com várias guias de livro de histórias entre outras guias. É irritante e causa confusão e tempo de limpeza da guia ...

Também notei meus colegas fazendo as mesmas coisas, resultando nos mesmos problemas ...
E fiquei um pouco surpreso, que não consegui encontrar uma opção para não abrir o navegador ...

Eu sei, existe --ci para pular os prompts interativos e não abrir o navegador, mas também pula os prompts interativos. Embora eu não tenha visto nenhum prompt interativo ainda, usar o modo ci para uso diário simplesmente não parece certo ...

Descreva a solução que você gostaria

start-server --no-open deve construir e funcionar normalmente, mas não abre a janela do navegador.

Descreva as alternativas que você considerou

Abrir o navegador com start-storybook deve estar desabilitado por padrão e pode ser habilitado usando --open .

O Webpack suporta os sinalizadores --open / --no-open , que também são espelhados por outros CLIs que usam o webpack internamente.
angular cli e vue cli oferecem os mesmos sinalizadores e - como o webpack-dev-server - não abrem o navegador por padrão.

Do meu ponto de vista pessoal, abrir o navegador por padrão é uma má prática teimosa.
Mas eu sei, existem diferentes opiniões sobre isso por aí ... :)

Você pode ajudar a trazer o recurso para a realidade?
Sim, eu poderia me aprofundar nisso e fazer um RP.

Contexto adicional
Alguém quer uma captura de tela da barra de guias do meu navegador cheia de guias de contos de fadas? ;)

BREAKING CHANGE cli feature request todo

Comentários muito úteis

pessoalmente, eu preferiria que --no-open fosse o padrão

Todos 31 comentários

Olá @simbo. AFAIK a opção --ci faz exatamente isso.

Você está propondo:

  • renomeando ou alias para --no-open
  • tornando-o true por padrão?

Parece tão... :)

Alias. Não há problema em adicionar um apelido --no-open a --ci para tornar o recurso mais detectável. Também poderíamos torná-lo um sinalizador separado se em algum ponto houver mais coisas que não queremos fazer quando estamos em CI, além de simplesmente não abrir o navegador.

Valor padrão. Quanto a mudar o padrão para --no-open , não me oponho, embora seja uma mudança significativa, então gostaríamos de fazer isso no 6.0. Estou postando este problema no #maintenance Discord, então espero que possamos obter algum consenso. Em caso afirmativo, é uma alteração trivial, mas provavelmente levará algum tempo para ser liberada.

Pode não ser o mesmo. Acho que o CRA lida com isso de uma maneira elegante e pode ser adotado. As principais diferenças são:

  • direcione a guia que já está aberta em vez de abrir uma nova a cada vez.
  • defina o navegador preferido ou não abra -> arquivo .env
  • favorecem o Chrome em relação aos navegadores padrão (por exemplo, para pessoas que navegam com um navegador diferente do que desenvolvem, dos quais parecem muitos - o Chrome ainda é uma aposta mais segura para a maioria).

Documentação CRA relevante

Para mim, o start-storybook abre uma guia em uma janela em segundo plano de um navegador diferente toda vez que eu reinicio.

também pula prompts interativos

Um exemplo desse prompt é sobre como executar o Storybook em uma porta alternativa quando a porta solicitada estiver ocupada. Isso pode ser muito útil às vezes. Então eu acho que --no-open não deveria ser um apelido para --ci . Deve apenas desativar a abertura

favorece o Chrome em relação aos navegadores padrão

Sim, é por isso que eu não copiei essa abordagem como está

pessoalmente, eu preferiria que --no-open fosse o padrão

Olá a todos! Parece que não tem havido muito nesta edição ultimamente. Se ainda houver perguntas, comentários ou bugs, fique à vontade para continuar a discussão. Infelizmente, não temos tempo para abordar todos os problemas. Estamos sempre abertos a contribuições, portanto, envie-nos uma solicitação de pull se quiser ajudar. Os problemas inativos serão fechados após 30 dias. Obrigado!

Alguém prefere o comportamento atual? Se não, acho que podemos fazer a mudança

Eu faço. Na verdade, estou contando com isso como uma indicação de que o livro de histórias terminou de ser construído

talvez nós apenas forneçamos ambos os sinalizadores CLI: --open e --no-open e permitamos configurar isso assim que storybook.config.js aterrissar.

Eu também preferiria um sinalizador --no-open. Faça tudo o que é padrão atualmente, apenas pule a abertura de um novo navegador. MUITO freqüentemente tenho uma janela existente aberta, mas devo fechar e reiniciar o processo de storybook (devido a mudanças na configuração, etc), então não posso contar com o reinício automático. Nesses casos, simplesmente não quero um novo navegador.

@kutenai Você pode simplesmente correr com --ci ? A discussão aqui é se esse comportamento deve ser o padrão.

Parece funcionar bem para mim. Talvez a opção seja apenas enganosa, pois meio que implica que faz "mais" do que eu quero, mas, na prática, parece funcionar bem.

FWIW, create-react-app permite definir uma variável BROWSER env para escolher qual navegador abrir ou none para impedir que qualquer navegador seja aberto. Pode valer a pena olhar para

A discussão aqui é se esse comportamento deve ser o padrão.

Você realmente gostou do meu comentário que diz que deveria ser uma opção separada

Você realmente gostou do meu comentário que diz que deveria ser uma opção separada

Sim, estou absolutamente de acordo em tornar --no-open uma opção separada. Também acho que deveria ser o padrão e é sobre isso que espero chegar a um consenso para 6.0

O --no-open sendo o padrão parece ser um padrão lógico de se ter, honestamente, abrir uma janela do navegador por padrão parece ser principalmente para flash em uma palestra de conferência e não faz nada além de irritar os desenvolvedores que realmente recarregam este comando com bastante frequência.

Por agora:
Acho que vou usar a bandeira --ci .

Eu também gostaria que o padrão fosse não abrir o navegador, e meu primeiro palpite foi que eu poderia adicionar BROWSER=none como cra - então pode valer a pena adotar esse método para consistência. Posso não ser o único a adivinhar isso antes de olhar para os documentos.

Meu entendimento do comportamento de start do react-script é que, por padrão, ele abre uma guia e, se já houver uma aberta, ele a reutiliza.

Eu amo esse comportamento. Se estou trabalhando em um projeto por meio de alterações de código e travamentos inevitáveis ​​de aplicativo / webpack, não preciso me preocupar em aumentar minhas janelas com novas guias do mesmo aplicativo ou acionar uma bandeira para abrir uma nova guia.

Devemos também ter o cuidado de ter dois comandos para executar durante fluxos de trabalho de desenvolvimento normais: start-storybook --open no início inicial e, em seguida, start-storybook [--no-open] nos comandos subsequentes. Se a reutilização da guia for possível, isso não será um problema, pois meu fluxo de trabalho seria sempre start-storybook --open .

Eu preferiria que o padrão do Storybook fosse abrir uma guia, mas estou bem se vocês decidirem não abrir. Eu adoraria ver o comportamento de reutilização de guias surgir.

@JonKrone Infelizmente, ele apenas reutiliza a guia existente no HMR, até onde eu sei. Se eu executar novamente a CLI, ela sempre abrirá uma nova guia para mim (pelo menos no Chrome / OSX).

Não consigo fazer o --ci funcionar. Ainda abre uma nova guia no cromo cada vez que eu inicio. Estou no 5.2.1 com vue.

@SebbeJohansson você pode verificar

@shilman acabei de fazer uma configuração completamente nova apenas para ter certeza.
\ My-Storybook> npm run storybook --ci
Resulta em uma nova guia no meu navegador principal.

@SebbeJohansson ao usar npm run , você deve preceder -- a todos os argumentos que deseja passar para o comando subjacente:

npm run storybook -- --ci

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

Contanto que a reinicialização não direcione corretamente a mesma janela / guia do navegador (e / ou recarregue-a), abrir uma nova janela por padrão é apenas frustrante para mim. Eu acho que este é um anti-padrão que muitos pacotes estão usando para serem sofisticados ou algo assim . Todos somos capazes de abrir um navegador quando sabemos como lidar com o npm.

Depois de construí-lo, ele mostra uma bela caixa com 2 urls nas quais posso clicar com o botão direito do mouse, e a maioria de nós provavelmente usa start-storybook ao desenvolver e reiniciar muito .

TLDR: votação positiva de --ci como padrão e abertura no navegador por sinalização

reiniciando muito

Por que você precisa daquilo? start-storybook deve escolher suas alterações. Do contrário, parece um problema por si só.

Todos somos capazes de abrir um navegador

Claro que você sabe como abrir o navegador, o problema é que você não sabe quando . Em grandes projetos, a primeira construção pode demorar um pouco, e apenas sentar e esperar pela caixa no console pode não ser uma opção

Por que você precisa daquilo? start-storybook deve escolher suas alterações. Do contrário, parece um problema por si só.

Deve, e funciona na maioria das mudanças, mas não em todas as mudanças. No momento, estou configurando um novo Storybook e mexendo nele, então, sim, acabei com 10 guias em alguns minutos.

Claro que você sabe _como_ abrir o navegador, o problema é que você não sabe _quando_. Em grandes projetos, a primeira construção pode demorar um pouco, e apenas sentar e esperar pela caixa no console pode não ser uma opção

Ainda consigo abrir o navegador, ele apenas me dirá 'Conexão recusada'. Acho mais irritante que depois de um ou dois minutos, de repente, um navegador esteja aparecendo enquanto estou fazendo outra coisa.
Pode haver um comentário na caixa, há um sinalizador --automagically-open-in-browser (título de trabalho) que você pode ativar.

Observação: estou vendo esse padrão em todo o setor e, quando usado, questões e questões & (stackoverflow) surgem em todos os lugares como desativá-lo. Não gosto muito do padrão como padrão , especialmente porque almejar a mesma guia não é uma tecnologia sólida. Enquanto isso, uma vez aberta, uma desconexão para o 'servidor' pode iniciar a pesquisa e recarregar assim que voltar a funcionar.

Proposta: Em vez de fazer tudo isso, podemos apenas adicionar uma mensagem à saída CLI notificando o usuário da opção --ci se ele não quiser que o navegador seja aberto? O comportamento atual é muito melhor graças às melhorias de @yannbf

Onde podemos ver essas melhorias?

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

zvictor picture zvictor  ·  3Comentários

tirli picture tirli  ·  3Comentários

xogeny picture xogeny  ·  3Comentários

wahengchang picture wahengchang  ·  3Comentários

tlrobinson picture tlrobinson  ·  3Comentários