Storybook: Опция CLI для start-storybook, чтобы не открывать браузер

Созданный на 20 мар. 2019  ·  31Комментарии  ·  Источник: storybookjs/storybook

Ваш запрос функции связан с проблемой?
Я перезапускаю start-storybook время от времени по разным причинам, от изменения конфигурации до работы над другими вещами. Тем не менее, я не закрываю вкладку браузера сборника рассказов. И поскольку start-storybook открывает новую вкладку браузера при каждом запуске, моя панель вкладок заполняется несколькими вкладками сборника рассказов между другими вкладками. Это раздражает и приводит к путанице и времени очистки вкладок ...

Я также заметил, что мои коллеги делают то же самое, что приводит к тем же проблемам ...
И меня немного удивило, что я не нашел возможности не открывать браузер ...

Я знаю, что есть --ci чтобы пропустить интерактивные подсказки и не открывать браузер, но он также пропускает интерактивные подсказки. Хотя я еще не видел никаких интерактивных подсказок, использование режима ci для повседневного использования просто не подходит ...

Опишите желаемое решение

start-server --no-open должен строиться и работать как обычно, но не открывать окно браузера.

Опишите альтернативы, которые вы рассмотрели

Открытие браузера с помощью start-storybook должно быть отключено по умолчанию и может быть включено с помощью --open .

Webpack поддерживает флаги --open / --no-open которые также зеркалируются другими интерфейсами командной строки, которые используют webpack внутренне.
angular cli и vue cli предлагают одинаковые флаги и, как и webpack-dev-server, по умолчанию не открывают браузер.

С моей личной точки зрения, открытие браузера по умолчанию - это упрямая плохая практика.
Но я знаю, есть разные мнения по этому поводу ... :)

Можете ли вы помочь воплотить эту функцию в жизнь?
Да, я мог бы вникнуть в это и устроить пиар.

Дополнительный контекст
Кому-нибудь нужен снимок экрана с панелью вкладок моего браузера, заполненной вкладками сборника рассказов? ;)

BREAKING CHANGE cli feature request todo

Самый полезный комментарий

лично я бы предпочел --no-open по умолчанию

Все 31 Комментарий

Привет @simbo. Насколько мне известно, опция --ci делает именно это.

Вы предлагаете:

  • переименование или псевдоним в --no-open
  • сделать это по умолчанию true ?

Кажется так... :)

Псевдоним. Я могу добавить псевдоним --no-open к --ci чтобы сделать эту функцию более доступной. Мы также могли бы сделать его отдельным флагом, если в какой-то момент есть еще вещи, которые мы не хотим делать, когда мы находимся в CI, кроме того, что просто не открываем браузер.

Значение по умолчанию. Что касается изменения значения по умолчанию на --no-open , я не против, хотя это было бы критическим изменением, поэтому мы хотели бы сделать это в 6.0. Я публикую эту проблему в Discord #maintenance поэтому, надеюсь, мы сможем прийти к консенсусу. Если так, то это тривиальное изменение, но, вероятно, потребуется некоторое время, чтобы его выпустить.

Это может быть не то же самое. Я думаю, что CRA изящно справится с этим и может быть принят. Ключевые отличия:

  • выберите вкладку, которая уже открыта, вместо того, чтобы каждый раз открывать новую.
  • установить предпочтительный браузер или не открывать -> файл .env
  • отдавайте предпочтение Chrome по сравнению с браузерами по умолчанию (например, для людей, которые используют браузер, отличный от того, который они разработали, а их, кажется, много - Chrome по-прежнему является более безопасным вариантом для большинства).

Соответствующая документация CRA

Для меня start-storybook открывает вкладку в фоновом окне другого браузера каждый раз, когда я его перезапускаю.

он также пропускает интерактивные подсказки

Одним из примеров такого запроса является запуск Storybook через альтернативный порт, когда запрошенный порт занят. Иногда это может быть весьма полезно. Поэтому я думаю, что --no-open не должно быть псевдонимом для --ci . Следует только отключить открытие

предпочитайте Chrome браузерам по умолчанию

Да, поэтому я не копировал этот подход как есть

лично я бы предпочел --no-open по умолчанию

Всем привет! Похоже, что в последнее время в этом вопросе не так много происходило. Если все еще есть вопросы, комментарии или ошибки, пожалуйста, продолжайте обсуждение. К сожалению, у нас нет времени разбираться в каждой проблеме. Мы всегда открыты для внесения вклада, поэтому, если вы хотите помочь, отправьте нам запрос на включение. Неактивные вопросы будут закрыты через 30 дней. Спасибо!

Кто-нибудь предпочитает нынешнее поведение? Если нет, я думаю, мы можем внести изменения

Я делаю. На самом деле я как бы полагаюсь на это как на указание на то, что сборник рассказов закончен.

возможно, мы просто предоставим оба флага cli: --open и --no-open и позволим настроить это после приземления storybook.config.js .

Я бы также предпочел флаг --no-open. Сделайте все, что в настоящее время установлено по умолчанию, просто пропустите открытие нового браузера. У меня ОЧЕНЬ часто открыто существующее окно, но я должен закрыть и перезапустить процесс сборника рассказов (из-за изменений конфигурации и т. Д.), Поэтому я не могу полагаться на автоматический перезапуск. В таких случаях мне просто не нужен новый браузер.

@kutenai Можешь просто бежать с --ci ? Здесь обсуждается вопрос о том, должно ли такое поведение использоваться по умолчанию.

Кажется, у меня все работает нормально. Возможно, этот вариант просто вводит в заблуждение, поскольку подразумевает, что он делает «больше», чем я хочу, но на практике кажется, что он работает нормально.

FWIW, create-response-app позволяет вам установить переменную BROWSER env, чтобы выбрать, какой браузер открыть, или none чтобы запретить открытие любого браузера. Может быть стоит посмотреть

Здесь обсуждается вопрос о том, должно ли такое поведение использоваться по умолчанию.

Вам действительно понравился мой комментарий, в котором говорится, что это должен быть отдельный вариант

Вам действительно понравился мой комментарий, в котором говорится, что это должен быть отдельный вариант

Да, я абсолютно согласен с тем, чтобы сделать --no-open отдельным вариантом. Я также считаю, что это должно быть значение по умолчанию, и я надеюсь достичь консенсуса по поводу 6.0.

Значение по умолчанию --no-open кажется разумным по умолчанию, честно говоря, открытие окна браузера по умолчанию похоже на то, что это в основном для флэш-памяти на конференции и ничего не делает, кроме как раздражает разработчиков, которые на самом деле часто перезагружают эту команду.

Сейчас:
Думаю, я использую флаг --ci .

Я также хотел бы, чтобы по умолчанию браузер не открывался, и, пожалуй, я первым делом предположил, что могу добавить BROWSER=none как cra - так что, возможно, стоит принять этот метод для согласованности. Возможно, я не единственный, кто догадается об этом, прежде чем просматривать документы.

Насколько я понимаю, поведение реактивного скрипта start заключается в том, что по умолчанию он открывает вкладку, а если она уже открыта, он повторно использует эту вкладку.

Мне нравится такое поведение. Если я работал над проектом через изменения кода и неизбежные сбои приложения / веб-пакета, мне не нужно беспокоиться о раздувании моих окон новыми вкладками того же приложения или перевороте флага, чтобы открыть новую вкладку.

Мы также должны быть осторожны с запуском двух команд во время обычных рабочих процессов разработки: start-storybook --open при первоначальном запуске и затем start-storybook [--no-open] при последующих командах. Если возможно повторное использование вкладок, это не проблема, так как мой рабочий процесс всегда будет start-storybook --open .

Я бы предпочел, чтобы по умолчанию в Storybook открывалась вкладка, но ничего, если вы решите этого не делать. Я бы хотел увидеть, как работает повторное использование вкладок.

@JonKrone К сожалению, насколько мне известно, он повторно использует только существующую вкладку в HMR. Если я повторно запускаю интерфейс командной строки, он всегда открывает для меня новую вкладку (по крайней мере, в Chrome / OSX).

Не могу заставить работать --ci. По-прежнему открывает новую вкладку в хроме каждый раз, когда я ее запускаю. Я нахожусь на 5.2.1 с vue.

@SebbeJohansson, можешь еще раз проверить? работает на меня

@shilman Я только что использовал совершенно новую настройку, чтобы убедиться.
\ My-Storybook> npm run сборник рассказов --ci
Открывает новую вкладку в моем основном браузере.

@SebbeJohansson при использовании npm run вы должны добавить -- ко всем аргументам, которые вы хотите передать базовой команде:

npm run storybook -- --ci

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

Пока перезапуск не нацелен на одно и то же окно / вкладку браузера (и / или не перезагружает его), открытие нового окна по умолчанию меня просто расстраивает. Я думаю, что это антипаттерн, который многие пакеты используют, чтобы придумать что-то особенное . Мы все способны открыть браузер к тому времени, когда узнаем, как обрабатывать npm.

После сборки он показывает красивая коробка с 2 URL, можно чтрла кнопки мыши, и большинство из нас , вероятно , использовать start-storybook при разработке и перезапуск много.

TL; DR: голосование за --ci по умолчанию и открытие в браузере по флагу

перезапуск много

Зачем тебе это надо? start-storybook должен выбрать ваши изменения. Если это не так, это уже само по себе является проблемой.

Мы все можем открыть браузер

Конечно, вы знаете, как открыть браузер, проблема в том, что вы не знаете, когда . В больших проектах первая сборка может занять довольно много времени, и просто сидеть и ждать коробки в консоли может быть не вариант.

Зачем тебе это надо? start-storybook должен выбрать ваши изменения. Если это не так, это уже само по себе является проблемой.

Он должен и делает с большинством изменений, но не со всеми изменениями. В настоящее время я создаю новый сборник рассказов и возюсь с ним, так что да, я получил 10 вкладок за несколько минут.

Конечно, вы знаете, как открыть браузер, проблема в том, что вы не знаете, когда. В больших проектах первая сборка может занять довольно много времени, и просто сидеть и ждать коробки в консоли может быть не вариант.

Я все еще могу открыть браузер, он просто скажет мне «В соединении отказано». Я думаю, что больше раздражает то, что через минуту или две внезапно появляется браузер, пока я занимаюсь чем-то другим.
В поле может быть комментарий, там есть флаг --automagically-open-in-browser (рабочее название), который вы можете включить.

Обратите внимание: я вижу эту закономерность в отрасли, и везде, где она используется, возникают проблемы и вопросы (stackoverflow), как ее отключить. Мне очень не нравится этот шаблон по умолчанию , тем более что нацеливание на одну и ту же вкладку не является надежной технологией. Между тем, после открытия соединение с «сервером» может начать опрос и перезагрузить, как только он снова заработает.

Предложение: вместо того, чтобы делать все это, можем ли мы просто добавить сообщение в вывод CLI, уведомляющее пользователя о параметре --ci если они не хотят, чтобы он открывал браузер? Текущее поведение намного лучше благодаря улучшениям @yannbf.

Где мы можем увидеть эти улучшения?

Доступна в версии 6.0-beta. https://github.com/storybookjs/storybook/pull/10329

Была ли эта страница полезной?
0 / 5 - 0 рейтинги