Storybook: خيار CLI لـ start-storybook لعدم فتح المتصفح

تم إنشاؤها على ٢٠ مارس ٢٠١٩  ·  31تعليقات  ·  مصدر: storybookjs/storybook

هل طلب الميزة الخاص بك متعلق بمشكلة؟
أقوم بإعادة تشغيل start-storybook من وقت لآخر لأسباب مختلفة من تغيير التكوين إلى العمل على أشياء أخرى. ومع ذلك ، فأنا لا أغلق علامة تبويب متصفح القصص القصيرة. ونظرًا لأن start-storybook يفتح علامة تبويب جديدة في المتصفح في كل مرة تبدأ ، فإن شريط علامات التبويب الخاص بي يمتلئ بعلامات تبويب متعددة في القصص المصورة بين علامات تبويب أخرى. إنه أمر مزعج ويؤدي إلى الارتباك ووقت تنظيف علامة التبويب ...

لاحظت أيضًا أن زملائي يفعلون نفس الأشياء مما يؤدي إلى نفس المشاكل ...
وفوجئت قليلاً ، لأنني لم أجد خيارًا لعدم فتح المتصفح ...

أعلم أن هناك --ci لتخطي المطالبات التفاعلية وعدم فتح المتصفح ، ولكنه يتخطى أيضًا المطالبات التفاعلية. على الرغم من أنني لم أر أي مطالبات تفاعلية حتى الآن ، فإن استخدام وضع ci للاستخدام اليومي لا يبدو صحيحًا ...

صِف الحل الذي تريده

يجب أن ينشئ start-server --no-open ويعمل كالمعتاد ولكن لا يفتح نافذة المتصفح.

صِف البدائل التي فكرت فيها

يجب تعطيل فتح المتصفح باستخدام start-storybook افتراضيًا ويمكن تمكينه باستخدام --open .

يدعم Webpack علامات --open / --no-open والتي تنعكس أيضًا بواسطة CLIs الأخرى التي تستخدم webpack داخليًا.
يقدم كل من angular cli و vue cli نفس العلامات - مثل webpack-dev-server - لا تفتح المتصفح افتراضيًا.

من وجهة نظري الشخصية ، يعد فتح المتصفح افتراضيًا ممارسة سيئة عنيفة.
لكني أعلم أن هناك آراء مختلفة حول هذا الأمر ... :)

هل أنت قادر على المساعدة في تحويل الميزة إلى حقيقة؟
نعم ، يمكنني التعمق في هذا الأمر وإجراء العلاقات العامة.

سياق إضافي
هل يريد أي شخص لقطة شاشة لشريط علامة تبويب المتصفح الخاص بي المليء بعلامات تبويب القصص المصورة؟ ؛)

BREAKING CHANGE cli feature request todo

التعليق الأكثر فائدة

أنا شخصياً أفضل أن يكون --no-open هو الخيار الافتراضي

ال 31 كومينتر

مرحباsimbo. AFAIK الخيار --ci يفعل ذلك بالضبط.

هل تقترح:

  • إعادة تسميته أو تسميته مستعارة إلى --no-open
  • جعله true افتراضيًا؟

يبدو ذلك ... :)

الاسم المستعار. لا مانع من إضافة اسم مستعار --no-open إلى --ci لجعل الميزة أكثر قابلية للاكتشاف. يمكننا أيضًا جعلها علامة منفصلة إذا كان هناك في وقت ما المزيد من الأشياء التي لا نريد القيام بها عندما نكون في CI بصرف النظر عن عدم فتح المتصفح.

القيمة الافتراضية. بالنسبة لتغيير الإعداد الافتراضي إلى --no-open ، فأنا لا أعارض ذلك ، على الرغم من أنه سيكون تغييرًا مفاجئًا ، لذا فنحن نريد القيام بذلك في 6.0. أنا أنشر هذه المشكلة في Discord #maintenance لذلك نأمل أن نحصل على بعض الإجماع. إذا كان الأمر كذلك ، فهذا تغيير تافه ولكن من المحتمل أن يستغرق الأمر بعض الوقت لإصداره.

قد لا تكون هي نفسها. أعتقد أن CRA تتعامل مع هذا بطريقة رشيقة ويمكن اعتمادها. الاختلافات الرئيسية هي:

  • استهدف علامة التبويب المفتوحة بالفعل بدلاً من فتح علامة تبويب جديدة في كل مرة.
  • ضع المتصفح المفضل أو لا تفتح -> ملف env
  • فضل Chrome على المتصفحات الافتراضية (على سبيل المثال بالنسبة للأشخاص الذين يتصفحون باستخدام متصفح مختلف عما يطورونه ، والذي يبدو أن هناك الكثير منه - لا يزال Chrome رهانًا أكثر أمانًا بالنسبة للغالبية).

وثائق CRA ذات الصلة

بالنسبة لي ، يفتح كتاب قصص البداية علامة تبويب في نافذة خلفية لمتصفح مختلف في كل مرة أقوم فيها بإعادة تشغيله.

كما أنه يتخطى المطالبات التفاعلية

أحد الأمثلة على هذه المطالبة هو تشغيل Storybook منفذ بديل عندما يكون المنفذ المطلوب مشغولاً. يمكن أن يكون مفيدا جدا في بعض الأحيان. لذا أعتقد أن --no-open لا يجب أن يكون اسمًا مستعارًا لـ --ci . يجب فقط تعطيل الفتحة

فضل Chrome على المتصفحات الافتراضية

نعم ، لهذا السبب لم أنسخ هذا النهج كما هو

أنا شخصياً أفضل أن يكون --no-open هو الخيار الافتراضي

مرحبا جميعا! يبدو أنه لم يكن هناك الكثير مما يحدث في هذه المشكلة مؤخرًا. إذا كانت لا تزال هناك أسئلة أو تعليقات أو أخطاء ، فلا تتردد في مواصلة المناقشة. للأسف ، ليس لدينا الوقت لحل كل مشكلة. نحن دائمًا منفتحون على المساهمات ، لذا يرجى إرسال طلب سحب إلينا إذا كنت ترغب في المساعدة. سيتم إغلاق المشكلات غير النشطة بعد 30 يومًا. شكرا!

هل هناك من يفضل السلوك الحالي؟ إذا لم يكن الأمر كذلك ، أعتقد أنه يمكننا إجراء التغيير

أفعل. في الواقع ، أنا أعتمد عليه نوعًا ما كمؤشر على أن كتاب القصص قد انتهى بناؤه

ربما نوفر كلا علامتي cli: --open و --no-open ونسمح بتكوين هذا بمجرد وصول storybook.config.js .

أنا أفضل العلم - لا مفتوح كذلك. افعل كل ما هو افتراضي حاليًا ، ما عليك سوى تخطي فتح متصفح جديد. أنا في كثير من الأحيان يكون نافذة القائمة المفتوحة ولكن يجب إغلاق وإعادة تشغيل عملية القصص القصيرة (بسبب تغييرات التكوين، وما إلى ذلك)، لذلك لا يمكن الاعتماد على إعادة التشغيل التلقائي. في هذه الحالات ، لا أريد متصفحًا جديدًا.

@ kutenai هل يمكنك الركض بـ --ci ؟ النقاش هنا هو ما إذا كان يجب أن يكون هذا السلوك هو الافتراضي.

يبدو أنه يعمل بشكل جيد بالنسبة لي. ربما يكون الخيار مضللًا فقط ، لأنه يعني نوعًا ما أنه يفعل "أكثر" مما أريد ، ولكن من الناحية العملية ، يبدو أنه يعمل بشكل جيد.

FWIW ، يتيح لك تطبيق create-react-app تعيين متغير env BROWSER لاختيار المتصفح الذي تريد فتحه ، أو none لمنع فتح أي متصفح. يمكن أن يكون من المفيد النظر فيه

النقاش هنا هو ما إذا كان يجب أن يكون هذا السلوك هو الافتراضي.

لقد أحببت بالفعل تعليقي الذي يقول إنه يجب أن يكون خيارًا منفصلاً

لقد أحببت بالفعل تعليقي الذي يقول إنه يجب أن يكون خيارًا منفصلاً

نعم ، أنا موافق تمامًا على جعل --no-open خيارًا منفصلاً. أعتقد أيضًا أنه يجب أن يكون الإعداد الافتراضي وهذا ما آمل أن أحصل على إجماع بشأن 6.0

يبدو أن --no-open افتراضيًا كأنه افتراض افتراضي ، فتح نافذة متصفح بصراحة بشكل افتراضي يبدو أنه في الغالب لمحادثات فلاش في مؤتمر ولا يفعل شيئًا سوى إزعاج المطورين الذين يعيدون تحميل هذا الأمر في كثير من الأحيان.

الى الان:
أعتقد أنني سأستخدم العلم --ci .

أود أيضًا أن يكون الإعداد الافتراضي هو عدم فتح المتصفح ، وكان تخميني الأول هو أنه يمكنني إضافة BROWSER=none like cra - لذلك قد يكون من المفيد اعتماد هذه الطريقة لتحقيق الاتساق. قد لا أكون الشخص الوحيد الذي يخمن ذلك قبل النظر في المستندات.

إن ما أفهمه من سلوك start الخاص بـ React-script هو أنه يفتح افتراضيًا علامة تبويب ، وإذا كان هناك علامة تبويب مفتوحة بالفعل ، فإنه يعيد استخدام علامة التبويب تلك.

أنا أحب هذا السلوك. إذا كنت أعمل في مشروع من خلال تغييرات التعليمات البرمجية وتعطل التطبيق / حزمة الويب الذي لا مفر منه ، فلا داعي للقلق بشأن انتفاخ النوافذ بعلامات تبويب جديدة من نفس التطبيق أو قلب العلم لفتح علامة تبويب جديدة.

يجب أن نكون حذرين أيضًا من وجود أمرين للتشغيل أثناء مهام سير عمل المطورين العادية: start-storybook --open في البداية الأولية ثم start-storybook [--no-open] في الأوامر اللاحقة. إذا كانت إعادة استخدام علامة التبويب ممكنة ، فهذه ليست مشكلة لأن سير العمل الخاص بي سيكون دائمًا start-storybook --open .

أفضل أن يكون الإعداد الافتراضي لـ Storybook هو فتح علامة تبويب ولكني بخير إذا قررت جميعًا عدم القيام بذلك. أود أن أرى سلوك إعادة استخدام علامة التبويب يتحقق بالرغم من ذلك.

JonKrone لسوء الحظ ، فإنه يعيد فقط استخدام علامة التبويب الموجودة على HMR بقدر ما أعرف. إذا أعدت تشغيل CLI ، فإنه يفتح دائمًا علامة تبويب جديدة لي (على Chrome / OSX على الأقل).

لا أستطيع الحصول على --ci للعمل. لا يزال يفتح علامة تبويب جديدة في الكروم في كل مرة أبدأ فيها. أنا في 5.2.1 مع vue.

SebbeJohansson هل يمكنك التحقق مرتين؟ العمل لدي

shilman لقد قمت للتو بإعداد جديد تمامًا للتأكد.
\ My-Storybook> تشغيل npm Storybook --ci
النتائج في علامة تبويب جديدة في متصفحي الأساسي.

SebbeJohansson عند استخدام npm run ، يجب عليك إضافة -- كل المعطيات التي تريد تمريرها إلى الأمر الأساسي:

npm run storybook -- --ci

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

طالما أن إعادة التشغيل لا تستهدف بشكل صحيح نافذة / علامة تبويب المتصفح نفسها (و / أو إعادة تحميلها) ، فإن فتح نافذة جديدة بشكل افتراضي أمر محبط بالنسبة لي. أعتقد أن هذا هو نمط مضاد تستخدمه الكثير من الحزم لتكون خيالية أو شيء من هذا القبيل . كلنا قادرون على فتح المتصفح بحلول الوقت الذي نعرف فيه كيفية التعامل مع npm.

بعد إنشائه ، يظهر مربعًا رائعًا به عنوان url الخاص بـ 2 ، يمكنني النقر فوق ctrl ، وربما يستخدم معظمنا start-storybook أثناء التطوير وإعادة التشغيل كثيرًا .

TLDR: Upvoting --ci كإعداد افتراضي وفتح في المتصفح بالعلم

إعادة التشغيل كثيرا

لماذا تحتاج ذلك؟ يجب أن يختار start-storybook تغييراتك. إذا لم يحدث ذلك ، فيبدو أنه مشكلة في حد ذاته.

كلنا قادرون على فتح المتصفح

بالطبع أنت تعرف كيف تفتح المتصفح ، لكن المشكلة هي أنك لا تعرف متى . في المشاريع الكبيرة ، قد يستغرق البناء الأول بعض الوقت ، وقد لا يكون مجرد الجلوس وانتظار الصندوق في وحدة التحكم خيارًا

لماذا تحتاج ذلك؟ يجب أن يختار start-storybook تغييراتك. إذا لم يحدث ذلك ، فيبدو أنه مشكلة في حد ذاته.

يجب أن يحدث ، ويفعل في معظم التغييرات ، ولكن ليس كل التغييرات. أقوم حاليًا بإعداد Storybook الجديدة وأتعامل معها ، لذا نعم انتهى بي الأمر بـ 10 علامات تبويب في بضع دقائق.

بالطبع تعرف _how_ لفتح المتصفح ، والمشكلة هي أنك لا تعرف _متى _. في المشاريع الكبيرة ، قد يستغرق البناء الأول بعض الوقت ، وقد لا يكون مجرد الجلوس وانتظار الصندوق في وحدة التحكم خيارًا

لا يزال بإمكاني فتح المتصفح ، سيخبرني فقط "تم رفض الاتصال". أعتقد أنه من المزعج أكثر أنه بعد دقيقة أو دقيقتين فجأة يظهر متصفح بينما أفعل شيئًا آخر.
قد يكون هناك تعليق في المربع حيث يوجد علامة --automagically-open-in-browser (عنوان عمل) يمكنك تمكينها.

ملاحظة: أرى هذا النمط عبر الصناعة ، وحيث يتم استخدامه ، تظهر المشكلات و (stackoverflow) الأسئلة في كل مكان حول كيفية تعطيله. أنا لا أحب هذا النمط بشدة باعتباره افتراضيًا ، خاصة وأن استهداف علامة التبويب نفسها ليس تقنية صلبة. في هذه الأثناء ، بمجرد الفتح ، يمكن أن يبدأ قطع الاتصال "بالخادم" في الاقتراع وإعادة التحميل بمجرد عودته مرة أخرى.

الاقتراح: بدلاً من القيام بكل هذا ، هل يمكننا فقط إضافة رسالة إلى إخراج CLI لإعلام المستخدم بخيار --ci إذا لم يرغب في فتح المتصفح؟ السلوك الحالي أفضل بكثير بفضل تحسينات yannbf

أين يمكننا رؤية هذه التحسينات؟

متوفر في الإصدار 6.0 بيتا. https://github.com/storybookjs/storybook/pull/10329

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات