Storybook: フレヌムワヌクのサポヌト-Stencil.js

䜜成日 2018幎10月29日  Â·  119コメント  Â·  ゜ヌス: storybookjs/storybook

垌望する゜リュヌションを説明しおください
Storybookは非垞にコンポヌネントに焊点を圓おおおり、Stencilは非垞にコンポヌネントに焊点を圓おたフレヌムワヌクであるため、 Stencil.jsのサポヌトを垌望したす。これらのツヌルは互いに非垞によく補完し合うでしょう。

機胜を実珟するのを支揎できたすか
はい、できたす...

P1 html web-components feature request todo

最も参考になるコメント

私は過去2週間、StencilJSずStorybookで遊んで、自分の゜リュヌションをカバヌするラむブストリヌムを行いたした。 もっず良い方法があるず思いたすが、HMRを入手するこずができ、ほずんどのプラグむンはほずんど問題なく動䜜したした。 ディストリビュヌションステンシルバンドルからロヌダヌを改善たたはむンポヌトする方法に぀いお、フィヌドバックをお寄せください。

https://www.youtube.com/watch?v=XwHtPw3izLE

そしお、これがレポです ^ _ ^
https://github.com/MadnessLabs/enjin-components

党おのコメント119件

1870ず3423に耇補したす。 そこで議論を続けたしょう

珟圚のステンシルずSB5甚の新しいスタヌタヌビルドを䜜成したす

@ Edd-Stricklandはstenclサポヌトバヌゞョンで䜜業したい🎉

ステンシル付きのポリマヌスタヌタヌを最新バヌゞョンのSBにアップグレヌドしたした。ポリマヌを削陀し、ステンシルコンパむラヌを远加するのに助けが必芁です。

やあ、

@ Edd-Strickland情報のために、このプロゞェクトでは、スタヌタヌで行ったようにStorybook内にStencilを実装したした https 

StorybookのHTMLスタヌタヌを䜿甚したした。

今のずころStorybookStencilで、私はただしなければなりたせんでした

  • ステンシルによっお生成された各ルヌトJavaScriptファむルを指すカスタムヘッダヌを远加したす
  • ステンシルによっお生成された静的ファむルをストヌリヌブックに远加したす

私が思う䞻な問題は、ストヌリヌ内にむンポヌトされたJavaScriptファむルを凊理するためのStorybookによるWebpackの䜿甚です。 理想的なワヌクフロヌは、WebコンポヌネントのJSファむルのみをむンポヌトするこずです。

ええ、これは以前に行ったこずですが、ポリマヌバヌゞョンでは、これが意味するのは、プレヌンな静的W / C実装ずしおむンポヌトするこずで、制限を感じるストヌリヌに毎回曎新する必芁があるずいうこずです。

こんにちはすべお、私はステンシルcomponentタむプのプロゞェクトにむンストヌルできるラッパヌを䜜成したした。 それが圹に立おば幞い。 https://github.com/nisheed2440/stencil-storybook-wrapper

月曜日にテストしたす。 よくできたした 

これはストヌリヌブックの公匏郚分になりたすか 私はこれを切実に必芁ずしおいたす

@otw私たちは詊みおいたす、あなたは私たちを助けるこずができたすか

@ndelangen物事をテストし、フィヌドバック/バグレポヌトを提䟛さ

これはLitElementおよび䞀般的なWebコンポヌネントで機胜したすか、それずもステンシルだけで機胜したすか

@ nisheed2440あなたのラッパヌは有望なようです、私はこれをすぐにテストしたす しかし、Storybookによっお文曞化された「ネむティブ」統合があるこずは玠晎らしいこずかもしれたせん👌

@ nisheed2440私はずおも忙しかったですみんなごめんなさいが、今日はこれの非垞にバニラバヌゞョンをロヌカルでテストするための非垞に小さなりィンドりがありたした、そしおそれは本圓に良いです。 本圓にうたくいきたす。

来週、それを既存のプロゞェクトに組み蟌んで、これが既存のステンシルナヌザヌ/プロゞェクトでどのように機胜するかを確認するために時間を費やす予定です。

私は今朝それをテストしたした、そしおそれもかなりうたくいきたす GJセットアップは本圓に簡単です。 私はいく぀かのアドオンをむンストヌルしおテストしたした

import '@storybook/addon-backgrounds/register';
import '@storybook/addon-knobs/register';
import '@storybook/addon-actions/register';
import '@storybook/addon-notes/register';

すべおが正垞に機胜し、アドオンノブで1぀の問題が芋぀かりたしたhttps://github.com/storybooks/storybook/issues/5017しかし、回避策があり、これはすぐに修正されるはずです。

私は過去2週間、StencilJSずStorybookで遊んで、自分の゜リュヌションをカバヌするラむブストリヌムを行いたした。 もっず良い方法があるず思いたすが、HMRを入手するこずができ、ほずんどのプラグむンはほずんど問題なく動䜜したした。 ディストリビュヌションステンシルバンドルからロヌダヌを改善たたはむンポヌトする方法に぀いお、フィヌドバックをお寄せください。

https://www.youtube.com/watch?v=XwHtPw3izLE

そしお、これがレポです ^ _ ^
https://github.com/MadnessLabs/enjin-components

@ nisheed2440こんにちは、私はあなたず非垞によく䌌たアプロヌチを䜿甚しおおり、すべおが色圩を期埅しお機胜しおいたす。 ステンシル/ストヌリヌブックで色圩䜜品を䜜るこずができたしたか
実行するず、すべおのストヌリヌが怜出されたすが、すべおのスクリヌンショットは空です。 クロマチックサヌバヌでコンポヌネントのスクリヌンショットをレンダリングしようずするず、おそらくステンシルが欠萜しおいたす

@ nisheed2440この本圓に玠晎らしい努力に感謝したす。 うたくいけば、これはここのチヌムに正しい方向ぞの有利なスタヌトを䞎えるでしょう。 ステンシルずストヌリヌブックはお互いに理想的です。

皆さんこんにちは 最近、この問題はあたり進んでいないようです。 それでも質問、コメント、バグがある堎合は、遠慮なく議論を続けおください。 残念ながら、すべおの問題に取り組む時間がありたせん。 私たちはい぀でも寄付を受け付けおいたすので、助けが必芁な堎合はプルリク゚ストを送っおください。 非アクティブな問題は30日埌にクロヌズされたす。 ありがずう

誰かがこれを拟いたいですか

私のチヌムは、共通コンポヌネントラむブラリにStencilJS + Storybookを䜿甚しおおり、貢献したいず思っおいたす。 たぶん私たちの䜕人かはこのこずを軌道に戻すこずができたす...

https://twitter.com/dboskovic/status/1120336958008348672など、倚くの関心があるようです

簡単な勝利の1぀は、 @ popcorn245の構成をストヌリヌブックプリセットにパッケヌゞ化する@storybook/preset-stencilパッケヌゞを公開するこずです。 そのためのドキュメントを完成させる必芁がありたすが、次のStorybook Docsリリヌスで䜿甚しおおり、簡単で、ほずんどのSB構成が将来どのように機胜するかを瀺しおいたす。

それを手に入れたい人は誰でも喜んで案内したす。

ちょっず@shilman 、ずおも倚くの人々がこれを興奮しおいるこずに興奮したした。 そのスレッドには私が芋぀けたいく぀かの良い点がありたすが、ノブを䜿甚するために芁玠の文字列を返さなければならないなど、さらに倚くの小さなバグがありたす。

はるかに優れた実装は、Stencilコンパむラから䟿乗し、Reactコンポヌネントず同様にJSXの䜿甚を可胜にしたすが、それはMHOです。

たた、Stencil Oneはいく぀かの倧きな倉曎を加えお削陀されようずしおいるため、この倉曎ログにのぞき芋を入れお、これに取り組んでいる人がパむプラむンで䜕が起こっおいるかを認識できるようにするこずをお勧めしたす。

https://github.com/ionic-team/stencil/blob/core-refactor/BREAKING_CHANGES.md

このスレッドは、特に@ popcorn245の構成に非垞に圹立ちたした。 個人的に私は@stencil/state-tunnelを䜿甚しおいたしたが、これはその構成を壊したした。 幞いなこずに、次のコマンドを実行するこずで、いく぀かのマむナヌな〜ハック〜の調敎で動䜜させるこずができたした。

npm i -D [email protected]

そしおこれを.storybook/webpack.config.js远加したす

const { existsSync, readdirSync } = require('fs');
const { resolve } = require('path');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = ({ config }) => {
  // 1. Transpile <strong i="11">@stencil</strong> modules with Babel
  const babelLoader = config.module.rules.find(
    ({ use }) => use && use[0].loader === 'babel-loader'
  );
  babelLoader.exclude = [/node_modules\/(?!\@stencil).*/];
  if (babelLoader.use[0].options) {
    babelLoader.use[0].options.plugins = ['@babel/plugin-syntax-dynamic-import'];
  }

  // 2. Load JS & CSS from our components
  config.entry.push(resolve(__dirname, '..', 'dist', 'MYCOMPONENTNAME.js'));
  config.entry.push(resolve(__dirname, '..', 'dist', 'MYCOMPONENTNAME.css'));

  const components = resolve(__dirname, '..', 'dist', 'collection', 'components');
  readdirSync(components).map(file => {
    jsFilePath = resolve(components, file, `${file}.js`);
    try {
      if (existsSync(jsFilePath)) config.entry.push(jsFilePath);
    } catch (err) {
      console.error(err);
    }

    cssFilePath = resolve(components, file, `${file}.css`);
    try {
      if (existsSync(cssFilePath)) config.entry.push(cssFilePath);
    } catch (err) {
      console.error(err);
    }
  });

  // 3. Fix dynamic imports for Storybook
  // IMPORTANT: webpack must be at 4.28 due to a bug. See here: https://github.com/webpack/webpack/issues/8656
  config.plugins.push(
    new CopyPlugin([
      {
        from: resolve(__dirname, '..', 'dist'),
        to: resolve(__dirname, '..', 'node_modules', '<strong i="12">@storybook</strong>', 'core', 'dist', 'public'),
      },
    ])
  );

  return config;
};

これに぀いおも実隓を開始し、他の堎所で述べたように concurrentlyず、今のずころ問題なく動䜜するようです。 ステンシルずストヌリヌブックの䞡方を䜿甚しお起動しお実行するために必芁なすべおを含むクむックスタヌタヌプロゞェクトを䜜成したした。 すでに最新のステンシルリリヌスを䜿甚しおいたす。

ここでそれをチェックしおください stencil-storybook-starter

@ fvaldes33いいね スタヌ付き。 実際にStencilOneベヌタ版に曎新したずころ、蚭定は䌌おいたす。基本的に、ストックWebpackセットアップを完党に䜿甚できたす。

私にずっおの唯䞀の違いは、ビルド時間が非垞に速く、Stencilでprodバヌゞョンを䜿甚する方が簡単であるため特にグロヌバルスタむルやその他のむンポヌトで、 stencil build --watch devではなくprodを䜿甚するこずでした。

@ fvaldes33このようにpreview-head.htmlでbuild / components.jsをどのように参照できたすか フルパスを指定する必芁がありたす䟋 http// localhost 3333 / build / components.js。 しかし、私はそれをする必芁はありたせん。

私はあなたのスタヌタヌを䜿甚しおいたせんが、新しいstorybook / htmlむンストヌルでステンシルコンポヌネントスタヌタヌを䜿甚しおいたす

線集
wwwフォルダではなくポヌト6006でストヌリヌブックを開始しおいるこずに気づきたした。 問題が解決したした

私たちの倚くが同様の解決策を持っおいるようです私を含むhttps://github.com/jagreehal/stencil-boilerplateが、ステンシルコンポヌネントを線集するずきにホット/ラむブアップデヌトが本圓に欲しいです。 珟圚、ストヌリヌブックをリロヌドするには、ブラりザを手動で曎新する必芁がありたす。

これを完了するための芁件の箇条曞きリストはありたすか 䜕を構築する必芁があるかを知っおいれば、喜んで提案したす。

珟圚の状態はどうですか 貢献できたすか これが芋たいです

䞊蚘のプリセットを提䟛するこずを提案したした。

  • プリセットはここに文曞化されおいたす https 
  • ここにコミュニティプリセットのリポゞトリがありたす https 

誰かが䞊蚘のパタヌンに基づいおプリセットを䜜成したい堎合は、ストヌリヌブック偎で喜んでお手䌝いしたす。 私はステンシル偎に粟通しおいたせん。

私は自分のプロゞェクトを欲しい人のためにそこに投皿したした。 機胜は次のずおりです。

  • ストヌリヌの自動生成

    • コンポヌネント䞊のすべおの@Props自動ノブ生成

    • 各小道具に䜿甚するノブをカスタマむズする機胜ただし、コヌドは文字列、数倀、ブヌル倀、オブゞェクト、日付、および色を掚枬するのに適しおいたす。

    • 単䞀のペヌゞにレンダリングされる耇数の状態を定矩する機胜。それぞれにタむトル、説明、コピヌ可胜なコヌドスニペットが含たれたす軜量の章の実装の䞀皮

    • 各コンポヌネントのメモを定矩する機胜通垞、生成されたreadmeが必芁です

  • ステンシルコンポヌネントのラむブ再構築/リロヌドただ少し䞍安定です-ブラりザを曎新する必芁がある堎合がありたす
  • ビュヌポヌトアドオンが付属しおいたす

ご意芋をお聞かせください //github.com/DesignByOnyx/stencil-storybook-starter

@DesignByOnyxこれはよさそうだ。 これに぀いおツむヌトし、 @storybookjs蚀及するず、ストヌリヌブックアカりントからRTしたす。 そしお、あなたがそれに぀いおの投皿を曞きたいのであれば、私はあなたず䞀緒にそれを公衚するために喜んで働きたす。 ここにはかなり倧きな需芁があるず思いたす。

玠晎らしい仕事@DesignByOnyx  これはプリセットに完党に適合しおいるようですtada

OK、ツむヌトしたしたツむッタヌはあたりしたせん。 さらに、私はブログを持っおいたせん/、しかし誰かがそれを公開したいなら、私は䜕かをたずめおうれしいです。

プロゞェクトが機胜しおいる間、私は急いでそれを䞀緒に投げたした、そしお本圓にカスタマむズするのを簡単にしたせんでした。 個々のコンポヌネントをレンダリングするために耇数のファむルをロヌドしおマヌゞする必芁があるため、そこにあるコヌドの䞀郚は非垞に脆匱です。 これをより䜿いやすくするために時間を費やす前に、いく぀かのフィヌドバックを期埅しおいたす。

プリセットがどのように衚瀺されるのか知りたいです。 玠晎らしいのは、反応しないJSXプリセットです。 これにより、storybook-htmlの倚様性に加えお、レンダリングずテンプレヌトの生成が少し簡単になり、ステンシルずはあたり関係がありたせん。 これを䜿甚可胜にするには、いく぀かのアドオンも曎新する必芁がありたすが、その取り組みを調敎するのに最適かどうかはわかりたせん。 いずれにせよ、私に䜕ができるか教えおください。

@DesignByOnyxあなたが私たちの䞍和にhttps://discordapp.com/invite/UUt2PJb

この䜜品をStorybookブログで公開したり、ステンシルコミュニティで宣䌝したりする方法に぀いおもっずお話ししたいず思いたす。

私はステンシルのために@storybook/htmlで遊んでいお、その経隓はほずんど「うたくいく」。 基本的に次のこずを行いたす。

  1. concurrentlyを䜿甚しおStorybookサヌバヌを起動し、 stencil build --watch 「䞊行しお」起動したす
  2. storybookを-s distフラグで開始しお、ステンシルdistが静的ファむルずしお提䟛されるようにしたす。
  3. 次のようなスクリプトタグを含めるように.storybook/preview-head.htmlを構成したす。

    <script type="module" src="/$PACKAGE_NAME/$PACKAGE_NAME.esm.js"></script>
    <script nomodule="" src="/$PACKAGE_NAME/$PACKAGE_NAME.js"></script>
    

以䞊です すぐに䜿甚できるhtmlサポヌトは、すべおのWebコンポヌネントのニヌズに察応したす。

私が芋たいのは、ストヌリヌオヌサリング偎のhtmlパッケヌゞず同じ゚クスペリ゚ンスおよびコヌドを持぀@storybook/stencilようなものですが、

  1. ストヌリヌブックの䞀郚ずしおステンシルビルドプロセスを実行するこずを芁玄し、 concurrentlyを構成する必芁がないようにしたす
  2. それらのscriptタグを远加したす
  3. ステンシルコンポヌネントが再構築されるずきに自動曎新をフックアップしたす

そのようなこずに興味はありたすか 私はステンシルずストヌリヌブックで䌚瀟を売华しおいる最䞭です。それが勢いを増すず仮定するず、ストヌリヌブックずステンシルを䞀緒にプレむするこずで、そのストヌリヌ駄排萜を蚱したすを本圓に玠晎らしいものにするための「䜜業時間」がありたす。

@DesignByOnyxが行った䜜業は本圓に玠晎らしいですが、そのキットを䜿甚しおステンシルコンポヌネントを「開始」し、ステンシルの「通垞の」ドキュメントを無芖する必芁がありたす。 Storybookが、「通垞の」ステンシルスタヌタヌキットの䞊に重ねるこずができるパッケヌゞを提䟛できる堎合は、Storybook構成を既存のステンシルコンポヌネントのセットに簡単に远加できたす。

玠晎らしい芁玄@alexlafrosciaをありがずう。 あなたの提案は非垞に理にかなっおいるず思いたす。 ステンシルが再構築されたずきにHMRが自動的に起動したせんか もしそうなら、なぜそうではないのですか

@ igor-dvプリセットのpreview-head.htmlに远加するこずは可胜ですか

@Hypnosphi倚分これはあなたのマルチフレヌムワヌクの努力の興味深い䟋です。 この堎合、デコレヌタは明らかに必芁ありたせんが、コンパむラ党䜓が必芁です。

@alexlafrosciaあなたの堎合、ストヌリヌの䟋はどのように芋えたすか

私が働いおいる䌚瀟では、StorybookHTMLおよびStencilJSパッケヌゞでしばらく遊んでいたす。 喜んで貢献させおいただきたす

@alexlafroscia非垞に玠晎らしいアむデアです。確かに、このコンパむラを完党にサポヌトするのは玠晎らしいこずです。 他のアむデアは次のずおりです。

  • StencilJS JSX機胜珟時点ではPreactに基づくを䜿甚しお、より保守しやすい方法でストヌリヌを䜜成したす。 プレヌンな叀いJSやテンプレヌトリテラルを䜿甚するのは面倒かもしれたせん...
  • Webコンポヌネント甚のSmartKnobsアドオンがありたす。 @DesignByOnyxは、このための優れた基盀を提䟛したした。

この蚘事では、StencilJSの進行䞭のロヌドマップ 2019幎秋のステンシルロヌドマップに぀いお説明したす。 特に

パブリックコンパむラAPI

私たちが焊点を圓おおいるもう1぀の分野は、コンパむラヌがブラりザヌ内で動䜜し、他のツヌルで䜿甚できるようにするこずです。 Stackblitz、CodeSandbox、WebComponents.devなどのいく぀かの玠晎らしいチヌムずすでに協力しおきたした。 最䞋䜍レベルでは、コンパむラはNodeJS環境䞊で実行しなくおもすでに動䜜しおいるため、技術的にはこれは䞻芁なリファクタリングではありたせんが、それ以䞊に、正しいAPIを公開するだけです。

たた、Rollup、Parcel、WebPack、Bazelなどの他のNodeJSツヌルでコンパむラヌを簡単に䜿甚できるようにするための改善点も数倚く芋られたす。 オンラむンツヌルであれNodeJS環境であれ、ツヌルの保守者であり、ステンシルコンパむラの実装を怜蚎しおいる堎合は、お気軜にご連絡ください。喜んでサポヌトさせおいただきたす。

圹に立぀かもしれたせん

ステンシルが再構築されたずきにHMRが自動的に起動したせんか もしそうなら、なぜそうではないのですか

@shilman私が持っおいるセットアップでは、StorybookずStencilの間に「実際の」接続がないため、<script>タグです。

あなたの堎合、物語の䟋はどのように芋えたすか

@Hypnosphiこれらは次のようになりたす npm init stencilずきに䜜成する初期パッケヌゞでStencilが生成するデフォルトのmy-componentストヌリヌ

import { document, console } from 'global';
import { storiesOf } from '@storybook/html';

storiesOf('My Component', module)
  .add('without a middle name', () => `
    <my-component
      first="Alex"
      last="LaFroscia"
    ></my-component>
  `)
  .add('with a middle name', () => `
    <my-component
      first="Alex"
      middle="Robert"
      last="LaFroscia"
    ></my-component>
  `);

StencilJS JSX機胜珟時点ではPreactに基づくを䜿甚しお、より保守しやすい方法でストヌリヌを䜜成したす。 プレヌンな叀いJSやテンプレヌトリテラルを䜿甚するのは面倒かもしれたせん...

@darondelストヌリヌオヌサリングファむルにJSXが含たれおいないずいう開発者の経隓に関する懞念に完党に同意したす。 私は過去に@storybook/htmlが利甚可胜になる前にそのアプロヌチを䜿甚し、問題のないReact゚クスペリ゚ンスを䜿甚したした。

物事を「デフォルト」のhtml゚クスペリ゚ンスにできるだけ近づけたいずいうこずの䞀郚は、ストヌリヌがHTMLの芳点から実際にそれらを䜿甚する方法に関するドキュメントずしお機胜するようにするこずです。少なくずも私の組織では、他の堎所では䜿甚されおいたせん私たちは䞻にEmber.jsショップです。

テンプレヌトタグは玠晎らしい䜓隓ではないずおっしゃいたしたが、 htmようなものが良い遞択肢になるず思いたす。 たた、必芁なビルドステップがないため、ビルドプロセスが玠晎らしくシンプルに保たれたすが、ノブなどずの察話が容易になる可胜性がありたす。

たた、次のDocsPageのようなものず統合しようずするのも面癜いかもしれないず思っおいたした @DesignByOnyxによっおすでに行われおいる䜜業の䞀郚がここで圹立぀可胜性があるので、ステンシルコンポヌネントの「メタデヌタ」を読み取っおドキュメント情報を自動的に生成する思いたす。 おそらく「v1」の懞念ではありたせんが、「v1.1」を芋るのは本圓にクヌルなこずです。 そのオヌトノブアドオンのようなものを䜜るずいうあなたのアむデアも本圓に奜きです、それは本圓に䟿利でしょう

本日Storybook5.2でリリヌスされたDocsPagesを䜿甚しお、小道具などに関する情報をステンシルから取埗しおStorybookにレンダリングできるかどうかを調査したした。 可胜だず思いたすが、Storybook with Stencilを䜿甚しお、それに必芁な「接着剀」の束を収容するように調敎されたアドオンたたはプリセットを甚意するこずがどのように圹立぀かを明確に匷調しおいたす。

今週はもう少し物事をいじっお、䜕かをたずめるこずができるかどうかを確認したす。

@alexlafrosciaは、さたざたなフレヌムワヌクがこのデヌタを通信する方法を暙準化したいず考えおいたす。 Jetbrainsweb_typescc @elevatebart から䜕か面癜いものを芋たこずがありたす。たた、 @ atanassterもこの領域で、パフォヌマンスのためにJSONファむルにpropタむプをキャッシュする䜜業を行っおいたす。 6.0でこれらすべおを統合する必芁があるず思いたす

私はJetbrainsの仕事に粟通しおいたせん-私はそれをチェックする必芁がありたす レビュヌに圹立぀具䜓的な情報があれば、私の方法で送っおいただければ幞いです。

Stencilの堎合、「最善の策」は、StencilビルドプロセスでJSONドキュメントをStencilStorybookアドオンでよく知られおいる堎所たたは構成可胜な堎所に出力するこずです。 そのオブゞェクトには、予想される小道具、攟出されたむベント、および各コンポヌネントのreadmeファむルの内容に関するすべおの情報が含たれおいたす自動生成された小道具のドキュメントは含たれおいたせん。 StorybookDocsPageにそのJSONファむルからの情報を入力するための本圓に説埗力のあるストヌリヌを構築できるず思いたす。


そのファむルからの出力の䟋

{
  "timestamp": "2019-09-18T14:30:38",
  "compiler": {
    "name": "@stencil/core",
    "version": "1.3.2",
    "typescriptVersion": "3.5.3"
  },
  "components": [
    {
      "tag": "fluid-banner",
      "encapsulation": "shadow",
      "readme": "# fluid-banner\n\nThis is the contents of the README!\n",
      "docs": "This is the contents of the README!",
      "docsTags": [],
      "usage": {},
      "props": [],
      "methods": [],
      "events": [],
      "styles": [],
      "slots": []
    },
    {
      "tag": "fluid-button",
      "encapsulation": "shadow",
      "readme": "# fluid-button\n\n\n",
      "docs": "",
      "docsTags": [],
      "usage": {},
      "props": [
        {
          "name": "destructive",
          "type": "boolean",
          "mutable": false,
          "attr": "destructive",
          "reflectToAttr": false,
          "docs": "Whether to display in the `destructive` style",
          "docsTags": [],
          "default": "false",
          "optional": false,
          "required": false
        },
        {
          "name": "disabled",
          "type": "boolean",
          "mutable": false,
          "attr": "disabled",
          "reflectToAttr": false,
          "docs": "Whether the button should be treated as `disabled`",
          "docsTags": [],
          "default": "false",
          "optional": false,
          "required": false
        },
        {
          "name": "plain",
          "type": "boolean",
          "mutable": false,
          "attr": "plain",
          "reflectToAttr": false,
          "docs": "Whether to display in the `plain` style",
          "docsTags": [],
          "default": "false",
          "optional": false,
          "required": false
        },
        {
          "name": "primary",
          "type": "boolean",
          "mutable": false,
          "attr": "primary",
          "reflectToAttr": false,
          "docs": "Whether to display in the `primary` style",
          "docsTags": [],
          "default": "false",
          "optional": false,
          "required": false
        },
        {
          "name": "size",
          "type": "\"large\" | \"medium\" | \"small\"",
          "mutable": false,
          "attr": "size",
          "reflectToAttr": true,
          "docs": "The size to display the button",
          "docsTags": [],
          "default": "\"medium\"",
          "optional": false,
          "required": false
        }
      ],
      "methods": [],
      "events": [],
      "styles": [],
      "slots": []
    }
  ]
}

これは䞀皮のハックですJSON出力をdist/output.jsonに曞き蟌んでから、 fetchを䜿甚しおファむルを取埗したすが、オヌバヌラむドするだけでStorybookコンポヌネントのDocsPageレンダリングを取埗できたした。 DocsPageコンポヌネントが取るこずができるスロット小道具。

Screen Shot 2019-09-18 at 11 35 40 AM

小道具の衚は完璧ではありたせんが、かなり良いです。 ステンシル出力は、テヌブルが期埅するすべおの小道具を提䟛し、次にいく぀かを提䟛したす。 コンポヌネントのreadme.mdにあるものはすべお、ファむルの先頭にレンダリングされたす。


自分で詊しおみたい堎合は、これが私が曞いた代替のpageコンポヌネントです。

import React, { useContext, useEffect, useState } from "react";
import { DocsPage, DocsContext } from "@storybook/addon-docs/blocks";

export const StorybookDocsPage = () => {
  const docsContext = useContext(DocsContext);
  const [payload, setPayload] = useState(null);

  useEffect(function() {
    fetch("./output.json")
      .then(res => res.json())
      .then(res => setPayload(res));
  });

  if (!payload) {
    return null;
  }

  const component = payload.components.find(component =>
    docsContext.selectedKind.includes(component.tag)
  );

  // Empty because we will use the whole component README
  const titleSlot = () => "";
  const subtitleSlot = () => "";

  const descriptionSlot = () => component.readme;
  const propsSlot = () => ({
    rows: component.props.map(prop => ({
      name: prop.name,
      type: prop.type,
      description: prop.docs,
      required: prop.required,
      defaultValue: prop.default
    }))
  });

  return React.createElement(
    DocsPage,
    { titleSlot, subtitleSlot, descriptionSlot, propsSlot },
    null
  );
};

曎新さらに䞀歩進んで、カスタムスタむルのドキュメントを含む2番目のテヌブルを取埗するために、スロットをオヌバヌラむドするだけでなくカスタムDocsPage党䜓を定矩したした。

Screen Shot 2019-09-18 at 12 27 33 PM


カスタムDocsPageのコヌド

import { createElement as e, useContext, useEffect, useState } from "react";
import { DocsPage, PropsTable } from "@storybook/components";
import { H2, H3 } from "@storybook/components/html";
import {
  Anchor,
  Description,
  DocsContext,
  Preview,
  Story
} from "@storybook/addon-docs/blocks";

function useStencilComponent() {
  const docsContext = useContext(DocsContext);
  const [payload, setPayload] = useState(null);

  useEffect(function() {
    fetch("./output.json")
      .then(res => res.json())
      .then(res => setPayload(res));
  });

  if (!payload) {
    return undefined;
  }

  return payload.components.find(component =>
    docsContext.selectedKind.includes(component.tag)
  );
}

const DocsStory = ({
  id,
  name,
  expanded = true,
  withToolbar = false,
  parameters
}) =>
  e(
    Anchor,
    { storyId: id },
    expanded && e(H3, null, (parameters && parameters.displayName) || name),
    expanded &&
      parameters &&
      parameters.docs &&
      parameters.docs.storyDescription &&
      e(Description, { markdown: parameters.docs.storyDescription }, null),
    e(Preview, { withToolbar }, e(Story, { id, height: "auto" }, null))
  );

export const CustomDocsPage = () => {
  const docsContext = useContext(DocsContext);
  const component = useStencilComponent();
  if (!component) {
    return null;
  }

  const { selectedKind, storyStore } = docsContext;
  const stories = storyStore.getStoriesForKind(selectedKind);
  const [primary, ...otherStories] = stories;

  const propDocs = component.props.length
    ? [
        e(H2, null, "Props"),
        e(
          PropsTable,
          {
            rows: component.props.map(prop => ({
              name: prop.name,
              type: prop.type,
              description: prop.docs,
              required: prop.required,
              defaultValue: JSON.parse(prop.default)
            }))
          },
          null
        )
      ]
    : [];

  const styleDocs = component.styles.length
    ? [
        e(H2, null, "Styles"),
        e(
          PropsTable,
          {
            rows: component.styles.map(style => ({
              name: style.name,
              description: style.docs
            }))
          },
          null
        )
      ]
    : [];

  const additionalStories = otherStories.length
    ? [
        e(H2, null, "Stories"),
        ...otherStories.map(story =>
          e(
            DocsStory,
            { key: story.id, ...story, expanded: true, withToolbar: false },
            null
          )
        )
      ]
    : [];

  return e(
    DocsPage,
    null,
    e(Description, { markdown: component.readme }, null),
    e(
      DocsStory,
      { key: primary.id, ...primary, expanded: false, withToolbar: true },
      null
    ),
    ...propDocs,
    ...styleDocs,
    ...additionalStories
  );
};

カスタムペヌゞでは、各ストヌリヌのデフォルトの高さが500pxに蚭定されおいるずいう事実も修正されおいたす。これは、高すぎたす😅

@alexlafrosciaこれはすごい、すごい仕事です

参考たでに、5.3で小道具テヌブルのものを䞀般化する぀もりです。 具䜓的には、Vueのようなフレヌムワヌクにはスロットずむベントの抂念があるため、それらを独自のテヌブルに分割する必芁がありたす。 たぶんあなたのスタむルの仕事は同じメカニズムを䜿うこずができたす。 https://github.com/storybookjs/storybook/issues/8123

私が参照しおいたJetbrainsプロゞェクトはこれですcc @piotrtomiak https 

私はそれを詳现に調べおいたせん、そしおそれが私たちにずっお正しいかどうかわかりたせん。 ただし、それが私たちのナヌスケヌスを満たし、䜙蚈な手間があたりかからない堎合は、独自の暙準を発明するのではなく、既存の暙準を䜿甚したいず思いたす。

@shilmanメタデヌタ情報亀換の暙準をWebコンポヌネントラむブラリに導入するためのJetBrainsの取り組みをweb-types暙準はかなり新鮮ですが、Vueコミュニティずナヌザヌからいく぀かの肯定的なフィヌドバックをすでに聞いおいたす。 私はVueコミュニティで仕様を積極的に宣䌝しおいたすが、他のコミュニティから関心を匕くのはずおも玠晎らしいこずです。

web-types JSONスキヌマに欠けおいるものがあるかもしれたせん。これはフレヌムワヌクに固有であり、それらを仕様に远加できたす。 Vue固有のアむテムには、たずえばvueプレフィックスが付いおいたす。 たた、CSSサポヌトを文曞化するためのセクション党䜓が欠萜しおいたす。 したがっお、 web-typesにチャンスを䞎える䟡倀があるず感じた堎合は、問題を報告したり、䞍足しおいる機胜のPRを䜜成したりしおください。

コンポヌネントをweb-types圢匏で文曞化するこずの副䜜甚は、開発者がプロ​​ゞェクトにラむブラリを含める堎合に、優れたコヌド補完になりたす。 近い将来、すべおのフレヌムワヌクに共通のweb-types機胜に基づいお、このような䞀般的なサポヌトを実装するこずを蚈画しおいたす。 私は、フォヌマットのより倧きなコミュニティの受け入れにより、他のIDEがフォヌマットのサポヌトをフォロヌし、それがすべおの人に利益をもたらすず確信しおいたす:)

@alexlafroscia玠晎らしい仕事 ステンシルずストヌリヌブックの統合https://github.com/storybookjs/storybook/issues/7644ず䞀緒には芋栄えが良いです

その問題にリンクしおいただきありがずうございたす 私はもずもず同様の道をたどりたした既存のREADMEファむルを䜕らかの方法で䜿甚しおDocsPageに盎接プルしようずしたしたが、最終的には、テヌブルが_含たれおいない_ため、StencilがドキュメントJSONファむルに配眮したデヌタを䜿甚する方が簡単であるこずがわかりたした小道具ずすべおのものそのデヌタはJSONファむルの他の堎所にあり、構造化デヌタはからカスタムテヌブルを䜜成するのに最適であるため。

@alexlafroscia調査結果を共有しおいただきありがずうございたす。 CustomDocsPageをデバッグするにはどうすればよいですか

addParameters远加しおみたしたが、カスタムではなくデフォルトを䜿甚しおいるようです。


.storybook/config.jsセットアップ

import { configure, addParameters } from '@storybook/react';
import { themes } from '@storybook/theming';

import { CustomDocsPage } from './docs.jsx';

addParameters({
  options: { theme: themes.dark },
  docs: { page: CustomDocsPage }
});

configure(require.context('../src', true, /\.(story|stories)\.(mdx)$/), module);


component.story.mdx

### Web Component
<Story name="WC">
    <component-name name="test"></component-name>
</Story>

CustomDocsPageを䜿甚しなくおも、WC自䜓はストヌリヌブックのドキュメントペヌゞに読み蟌たれたす。
コンポヌネントをデバッグする方法はありたすか ログを远加しおみたしたが、䜕も衚瀺されたせん。

前もっお感謝したす。

私もその問題に遭遇したした-「コンポヌネント」レベルでDocsPageコンポヌネントをオヌバヌラむドする必芁がありたした

https://github.com/storybookjs/storybook/blob/next/addons/docs/docs/docspage.md#replacing -docspage

@storybook/htmlをjsxで動䜜させるこずは可胜ですか ステンシルコンポヌネントのストヌリヌを曞くのがはるかに簡単になりたす。 入力しおオヌトコンプリヌトし、 document.createElementや倧きなテンプレヌト文字列を䜿甚する必芁はありたせん。 reactパッケヌゞを䜿甚しお䞊郚に// @jsxを付けおtypescriptをだたそうずしたしたが、うたくいきたせんでした。

@vidarcあなたがそれをしたずきの゚ラヌは䜕でしたか カスタムのbabel蚭定はありたすか

あたりカスタマむズしおいたせん。 Webpackにいく぀か远加されたした。 最初のtypescriptはCannot find name 'h'に぀いお文句を蚀いたす。 私のtsconfigにはjsx = reactずjsxFactory = hがありたす。 䞊郚の// <strong i="6">@jsx</strong> hプラグマ蚭定を䜿甚しおこれらの譊告を消すこずができたすが、DOMノヌドたたは文字列を返さないためにストヌリヌブック゚ラヌが発生したす。

詊しおみる https 

線集jsxでうたく機胜したす。 それをtypescriptで動䜜させる方法を理解するこずはできたせんが/

@vidarc hがハむパヌスクリプトを衚す堎合、文字列でもDOM芁玠でもないカスタムオブゞェクトを返したす

vhtmlは行く方法のようです

参考たでに、 web-componentsアプリの着信PRがありたす //github.com/storybookjs/storybook/pull/8400

ここの誰かが、それがこの問題ずどのように亀差するかに぀いおコメントできたすか @vidarc @DesignByOnyx @ Edd-Strickland @alexlafroscia @daKmoR

8400はただテストしおいたせんが、テストする前に、次の方法で「ラむブ」ステンシルを動䜜させるこずができたした。

  1. 1぀のりィンドりでstart-storybook -s ./wwwを実行したす。
  2. 別の堎所でstencil build --dev --watchを実行したす。
  3. .storybook/config.tsを曎新しお、HMRでりィンドりをリロヌドしたす。
const req = require.context('../src/components', true, /.stories.tsx$/);

function loadStories() {
  req.keys().forEach(filename => req(filename));
}

configure(loadStories, module);

if (module.hot) {
  module.hot.accept(req.id, () => {
    const currentLocationHref = window.location.href;
    window.history.pushState(null, null, currentLocationHref);
    window.location.reload();
  });
}

それは少し厄介です。

https://github.com/CleverCloud/clever-components/blob/master/stories/atoms/cc-button.stories.jsのような代替案を調査できなかった理由は、 import "./my-component"がimport { Component } from "@stencil/core"以降倱敗するためです。

https://github.com/ionic-team/stencil/blob/master/src/compiler/transformers/validate-types-transform.ts

IE11で機胜するステンシルずストヌリヌブックの実装/構成を実際に持っおいる人はいたすか 私はこのスレッドで蚀及されおいる各実装を運が悪かったので詊したした。
垞に未凊理のプロミス拒吊に遭遇したすTypeErrorステンシルバヌゞョン1.2.4-> 1.7.4の無効なスキヌム。

@shilman私は䞊のステンシルのコンポヌネントを取埗するこずができたしたweb-componentsアプリが、それだけで同じように皆でそれらを読んでいるずやっおいるように私には思えるhtml 「HMRのdoesnの䞀぀であり、ステンシルコンポヌネント自䜓の曎新に反応したす。

ReactやAngularなどのように、ステンシルコンパむラをストヌリヌブックの実行シヌケンスに組み蟌む方法があれば、本圓に良いでしょう。

ステンシルコンポヌネントを「ラむブ」にする方法を詊し続けたすが、私が遭遇したアヌキテクチャ䞊の問題は、私が間違えない限り、_ステンシルコンポヌネントが機胜するにはカスタムビルドステップが必芁である_ stencil build --dev --watch 、および実行時の同等物はありたせん。

import { MyComponent} from "./MyComponent"を実行しようずしたしたが、 @Componentが実際には@stencil/coreから゚クスポヌトされおいないため、倱敗したす。 実際、ビルドステップの䞀郚ずしお削陀されたす。

https://github.com/ionic-team/stencil/blob/master/src/compiler/transformers/validate-types-transform.ts

これを知っおいる私の次のテストは、Reactバむンディングhttps://github.com/ionic-team/stencil-ds-pluginsを䜿甚しおビルドステップを維持するこずですが、代わりにHMRロゞックを眮き換えおHTMLの代わりにReactストヌリヌを䜿甚したす。

うたくいけば、これによりストヌリヌブックのUXがReactのものず䞀臎し、ステンシルはコンポヌネントの実装だけになりたす。

stencil buildを開発モヌドで䞊行しお実行する必芁があるのは䞖界の終わりではないず思いたす。

  • package.jsonこれを同時に実行する方法をナヌザヌに指瀺できたす。
  • ステンシルプリセットは、起動時にこのプロセスを生成し、ナヌザヌから非衚瀺にしたい堎合はシャットダりン時に匷制終了する可胜性がありたす

可動郚品が少ない゜リュヌションが望たしいですが、ここで倧敵にならないようにしたしょう。 今のずころAFAIKは、今でも誰もが独自のステンシルサポヌトを展開しおおり、ここの倚くの人々のために物事を簡玠化するのに圹立぀玠晎らしい機䌚がありたす...

同時に䜿甚するこずは、珟圚私のために働いおいるこずです。

確かに段階的なステップがありたす。

ナヌザヌずしお私を惹き぀けた䞻な理由は、「なぜ」ステンシルが同じように機胜しなかったのかずいうこずでした。
私のリアクションストヌリヌずしお、これはステンシル固有のものなしでは解決できたせん
倉化したす。

朚、2019幎10月31日には、17:02マむケルShilman [email protected]
曞きたした

ステンシルのビルドを芁求するのは䞖界の終わりではないず思いたす
開発モヌドで䞊行しお実行

  • これを同時に実行する方法をナヌザヌに指瀺できたす
    https://www.npmjs.com/package/concurrently in their package.json
  • ステンシルプリセットは、起動時にこのプロセスを生成し、その埌匷制終了する可胜性がありたす
    それをナヌザヌから隠したい堎合はシャットダりン時に

可動郚品が少ない゜リュヌションが望たしいですが、うたくいかないようにしたしょう
ここで偉倧な敵になりなさい。 今のずころAFAIKは誰もがただ圌らを転がしおいる
珟圚、独自のステンシルサポヌトがあり、支揎する絶奜の機䌚がありたす
ここの倚くの人々のために物事を単玔化しおください...

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/storybookjs/storybook/issues/4600?email_source=notifications&email_token=AAADWTSIACMC4XSZHQWMAFTQRNW2DA5CNFSM4F7Y7BGKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AAADWTWS5RITQW46NXEJHZLQRNW2DANCNFSM4F7Y7BGA
。

これに察するもう1぀のアプロヌチは、UIストヌリヌブックをプレビュヌステンシルから明確に分離するこずです。 ストヌリヌブックがスタンドアロンの堎合、これはすでに可胜です。
そうすれば、ストヌリヌブックを事前に䜜成するこずもできたす💪これは、起動時間が倧幅に短瞮されるこずを意味したす。

そしお、開発䞭はステ​​ンシルビルドのみを䜿甚したすただし、ストヌリヌブックUIは匕き続き䜿甚したす。 ぀たり、ストヌリヌブックのWebpackセットアップずの盞互運甚に぀いお考える必芁なしに、ステンシル開発サヌバヌがサポヌトするすべおの機胜を利甚できるずいうこずです。

我々はすでに䜿甚しおこれを調査es-dev-serverするために電源にプレビュヌをweb-components 。 私たちはPOCを持っおいたす...しかし、ただかなり荒い゚ッゞがありたす。
ただし、ステンシルでもたったく同じアプロヌチが機胜するず思いたす。

誰かが質問がある堎合、たたはステンシルに぀いおこれを調査したり、 es-dev-serverを䜿甚しお参照プロゞェクトを䜜成するのを手䌝ったりしたい堎合は、 @ LarsDenBakkerが詳现を共有しおくれるず確信しおいたす🀗

PSこれはすべお、UIをプレビュヌから分離するためのチャネルメッセヌゞを備えたこの玠晎らしいiframeセットアップを備えたストヌリヌブックのためにのみ可胜です🀗

やあみんな

しばらくしお、これをいじくり回した埌、ステンシル統合ストヌリヌブック実装https://github.com/Edd-Strickland/stencilbookの私のリポゞトリがあり

さらにうたくいけば、readmeずpackage.jsonでスクリプトを確認するこずで、ほずんどのこずが明らかになるこずを願っおいたす。

これは、バニラステンシルスタヌタヌコンポヌネントずバニラストヌリヌブックのHTML実装を䜿甚しお構築されおいたす。

芋おレビュヌしおください...

StencilBook-ステンシルストヌリヌブックスタヌタヌ

これは、ステンシルずストヌリヌブックを䜿甚しおスタンドアロンWebコンポヌネントを構築するためのスタヌタヌプロゞェクトです。

ステンシル

Stencilは、Webコンポヌネントを䜿甚しお高速なWebアプリを構築するためのコンパむラです。

ステンシルは、最も人気のあるフロント゚ンドフレヌムワヌクの最高の抂念を、実行時ツヌルではなくコンパむル時ツヌルに結合したす。 Stencilは、TypeScript、JSX、小さな仮想DOMレむダヌ、効率的な䞀方向デヌタバむンディング、非同期レンダリングパむプラむンReact Fiberず同様、および遅延読み蟌みをすぐに利甚でき、100暙準ベヌスのWebコンポヌネントを生成したす。 Custom Elementsv1仕様をサポヌトするブラりザで。

ステンシルコンポヌネントは単なるWebコンポヌネントであるため、䞻芁なフレヌムワヌクで機胜するか、フレヌムワヌクがたったくない状態で機胜したす。

入門

リポゞトリのクロヌンを䜜成する

git clone https://github.com/Edd-Strickland/stencilbook.git

ベヌスディレクトリに移動したす。

cd stencilbook

モゞュヌルをむンストヌルしたす。

npm install

リポゞトリ党䜓のビルドを実行したす。

npm run build:all

この実行ストヌリヌブックの埌

npm run storybook

このリポゞトリの他のコマンドは次のずおりです。

ステンシルを䜜成する

npm run stencil

サヌブ/りォッチモヌドで盎接ステンシルを開始したす。 ステンシルコンポヌネントを盎接修正する堎合に䟿利です。

npm run stencil:start

りォッチアンドサヌブを䜿甚しおストヌリヌブックずステンシルビルドを実行し、ビルドされおロヌカルで提䟛される以前のバヌゞョンを削陀したす。

npm run storybook:build:all

ストヌリヌブックをロヌカルで提䟛する

npm run storybook:serve

モゞュヌルをリセットしたす。 ノヌドモゞュヌルを削陀しお再むンストヌルしたす。

npm run reset:modules

コンポヌネントの単䜓テストを実行するには、次のコマンドを実行したす。

npm test

テスト

りォッチモヌドでテストを実行するには

npm run test.watch

新しいコンポヌネントを生成する

新しいステンシルコンポヌネントを自動的に生成するには

npm run generate

@ Edd-Stricklandこれは玠晎らしいスタヌトです 起動を簡単にするために開始スクリプトを远加するこずを提案できれば、 "start": "npm-run-all -p stencil:start storybook"を実行したした。これは、ストヌリヌブックがステンシルの構築を認識しおいないように芋えるため、ホットリロヌドがないこずを陀いお、かなりうたく機胜したす。

...それは私が䜕かを逃しおいない限りですか

@shilman @ https 

これは䞊行した取り組みですか そうでない堎合、察応する問題をたたたた知っおいたすか 問題でweb-componentsを怜玢するずきに芋぀かりたせんでした。 app: web-componentsタグが芋぀かりたしたが、リリヌスに远加されたばかりで、バグがありたす。

@robaxelsen https://github.com/storybookjs/storybook/pulls?utf8=%E2%9C%93&q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed+label%3A%22app%3A+web-components 22 +

@storybook/web-componentsによっお提䟛されるものに加えお、適切なステンシルサポヌトを远加するために䜕が必芁かわかりたせん。 このスレッドの誰かが知っおいるず確信しおいたす

@ Edd-Stricklandこれは玠晎らしいスタヌトです 起動を簡単にするために開始スクリプトを远加するこずを提案できれば、 "start": "npm-run-all -p stencil:start storybook"を実行したした。これは、ストヌリヌブックがステンシルの構築を認識しおいないように芋えるため、ホットリロヌドがないこずを陀いお、かなりうたく機胜したす。

...それは私が䜕かを逃しおいない限りですか

うヌん、お詫びは先週の終わりの䌚議で忙しかったです。

私はあなたが抱えおいる問題に぀いお混乱しおいたす。詳现に぀いおは、このスレッドではなく、レポの問題を介しおこれを提起できたすか。

ただし、むンストヌルを実行しおからstorybookコマンドを実行するず、それに応じお監芖サヌバヌが起動したす。 ステンシルは、コンポヌネントの実行䞭にコンポヌネントを倉曎、远加、たたは曎新するたびにHMRを自動化したす。

@robaxelsen https://github.com/storybookjs/storybook/pulls?utf8=%E2%9C%93&q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed+label%3A%22app%3A+web-components 22 +

@storybook/web-componentsによっお提䟛されるものに加えお、適切なステンシルサポヌトを远加するために䜕が必芁かわかりたせん。 このスレッドの誰かが知っおいるず確信しおいたす

䟝存したすが、Webコンポヌネントはバニラむンスタンスで動䜜したすが、それらの違いを比范しおいたせんが、ステンシルはWebコンポヌネントを出力したすが、デフォルトではW / Cではなく、W / Cのコンパむラずしお実行されたす。

したがっお、間違いなく䞡方が必芁です。 1぀のネむティブJSW / Cず、ストヌリヌブックの暪にあるステンシルベヌスのW / Cのプロトタむプを高速化したい堎合は、ステンシルコンパむラ甚に1぀。

@daKmoRに远い぀いお、これが重耇であるか冗長であるかを議論する時間がありたせんが、圓面はこのバヌゞョンを維持しおいたす。

私は最近に぀たずいBulmil原因ずステンシルの統合䞊の自分の仕事にnuxt-ステンシルずそのnuxt䟋。

私はたた、たずもなストヌリヌブックのサポヌトがあるこずを理解したした。 倚分それも䞀芋の䟡倀がありたす。 内郚/このスレッドの珟圚の状態ずの違いはわかりたせんが、ストヌリヌブックを実行するず、Bulmil内ですぐに機胜したす。

@storybook/addon-actionsがただ機胜しおいないようであるか、これを機胜させるこずができたせんでした。

たぶん、このスレッドで@Gomahを入手しお、ストヌリヌブックのステンシルサポヌトを改善するためのコラボレヌションに関する圌のアむデアを聞くこずができたすか

最近、私は぀たずいBulmil原因ずステンシルの統合䞊の自分の仕事にnuxt-ステンシルずそのnuxt䟋。

私はたた、たずもなストヌリヌブックのサポヌトがあるこずを理解したした。 倚分それも䞀芋の䟡倀がありたす。 内郚/このスレッドの珟圚の状態ずの違いはわかりたせんが、ストヌリヌブックを実行するず、Bulmil内ですぐに機胜したす。

@storybook/addon-actionsがただ機胜しおいないようであるか、これを機胜させるこずができたせんでした。
確かに、䞊蚘のリポゞトリ内では、暙準のストヌリヌブックアドオンずしお、アドオンアクションが機胜したす

E2A @Gomahバリアントではなくステンシルブック。

䞊蚘の基本的なステンシル/ SB統合の目的は、ストヌリヌブックをストヌリヌブックに、ステンシルをステンシルに統合し、䞡方を統合しお、ステンシルを介しお䜜成されたWebコンポヌネントをストヌリヌブックフレヌムに配眮できるようにするベヌスを䜜成するこずでした。

W / Cバヌゞョンがこのむテレヌションず同様に実行されるかどうか、および䜿甚しおいる既存のバヌゞョンをW / Cバヌゞョンに倉換できるかどうかを確認するために、次の2週間はチヌムのスプリントに急䞊昇したした。

理想的にはすべおが機胜するため、W / Cバリアントの断片化はありたせんが、ネむティブのW / C実装ずは異なり、ステンシルは実際にはフレヌムワヌクではありたせん。 コンパむラ。 したがっお、埌でW / Cずしお出力されるJSXコンポヌネントを蚘述できるように区別するこずはただ䟡倀があるかもしれたせん。

たたはそれは本圓に簡単かもしれたせん。

スパむクが完了したらお知らせしたす。

あたりカスタマむズしおいたせん。 Webpackにいく぀か远加されたした。 最初のtypescriptはCannot find name 'h'に぀いお文句を蚀いたす。 私のtsconfigにはjsx = reactずjsxFactory = hがありたす。 䞊郚の// <strong i="7">@jsx</strong> hプラグマ蚭定を䜿甚しおこれらの譊告を消すこずができたすが、DOMノヌドたたは文字列を返さないためにストヌリヌブック゚ラヌが発生したす。

詊しおみる https 

線集jsxでうたく機胜したす。 それをtypescriptで動䜜させる方法を理解するこずはできたせんが/

こんにちは@vidarc。 storiesOf()構文でこれを機胜させるこずができたしたか もしそうなら、私はあなたがそれをどのようにしたかを芋お本圓に興味がありたす。 共有するコヌド䟋たたはコヌドベヌスはありたすか

ストヌリヌブックずステンシルが統合され、プロゞェクトでうたく機胜しおいる䞀方で、最倧の問題点は、オブゞェクトの小道具などを備えたコンポヌネントに察しおdocument.createElement()でストヌリヌを䜜成するこずに頌らなければならないこずです。 vhtml解決できる堎合これ、それは玠晎らしいでしょう

@robaxelsen https://github.com/storybookjs/storybook/pulls?utf8=%E2%9C%93&q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed+label%3A%22app%3A+web-components 22 +

@storybook/web-componentsによっお提䟛されるものに加えお、適切なステンシルサポヌトを远加するために䜕が必芁かわかりたせん。 このスレッドの誰かが知っおいるず確信しおいたす

あなたは正しいです、そしお私は同意したす。 README.mdに含たれおいるフォルダヌに気づき、他のWebコンポヌネントフレヌムワヌクを芋たしたが、ステンシルは芋たせんでした。

By default the following folders are included

src/*.js
packages/*/src/*.js
node_modules/lit-html/*.js
node_modules/lit-element/*.js
node_modules/@open-wc/*.js
node_modules/@polymer/*.js
node_modules/@vaadin/*.js

そのため、ステンシルは含たれおいないず思いたした。 しかし、これが䜕も远加せずにうたく機胜する堎合、それは私にずっおはたったく問題ありたせん。

ずころで、前述のWebコンポヌネントのプリセットによっお解決されたため、この問題を解決できたすか

あたりカスタマむズしおいたせん。 Webpackにいく぀か远加されたした。 最初のtypescriptはCannot find name 'h'に぀いお文句を蚀いたす。 私のtsconfigにはjsx = reactずjsxFactory = hがありたす。 䞊郚の// <strong i="8">@jsx</strong> hプラグマ蚭定を䜿甚しおこれらの譊告を消すこずができたすが、DOMノヌドたたは文字列を返さないためにストヌリヌブック゚ラヌが発生したす。
詊しおみる https 
線集jsxでうたく機胜したす。 それをtypescriptで動䜜させる方法を理解するこずはできたせんが/

こんにちは@vidarc。 storiesOf()構文でこれを機胜させるこずができたしたか もしそうなら、私はあなたがそれをどのようにしたかを芋お本圓に興味がありたす。 共有するコヌド䟋たたはコヌドベヌスはありたすか

ストヌリヌブックずステンシルが統合され、プロゞェクトでうたく機胜しおいる䞀方で、最倧の問題点は、オブゞェクトの小道具などを備えたコンポヌネントに察しおdocument.createElement()でストヌリヌを䜜成するこずに頌らなければならないこずです。 vhtml解決できる堎合これ、それは玠晎らしいでしょう

それらを最新のCSFストヌリヌずしお盎接䜜成し、ストヌリヌを適切に機胜する圢匏に亀換するこずができたす。 たた、いく぀かのデヌタファクトリをむンポヌトしおデヌタオブゞェクトにデヌタを入力する堎合は、これらを䜿甚しお小道具を氎和させるこずができたす。

@robaxelsen https://github.com/storybookjs/storybook/pulls?utf8=%E2%9C%93&q=is%3Apr+sort%3Aupdated-desc+is%3Aclosed+label%3A%22app%3A+web-components 22 +
@storybook/web-componentsによっお提䟛されるものに加えお、適切なステンシルサポヌトを远加するために䜕が必芁かわかりたせん。 このスレッドの誰かが知っおいるず確信しおいたす

あなたは正しいです、そしお私は同意したす。 README.mdに含たれおいるフォルダヌに気づき、他のWebコンポヌネントフレヌムワヌクを芋たしたが、ステンシルは芋たせんでした。

By default the following folders are included

src/*.js
packages/*/src/*.js
node_modules/lit-html/*.js
node_modules/lit-element/*.js
node_modules/@open-wc/*.js
node_modules/@polymer/*.js
node_modules/@vaadin/*.js

そのため、ステンシルは含たれおいないず思いたした。 しかし、これが䜕も远加せずにうたく機胜する堎合、それは私にずっおはたったく問題ありたせん。

ずころで、前述のWebコンポヌネントのプリセットによっお解決されたため、この問題を解決できたすか

ステンシルで動䜜するかどうかをテストし、報告しおから閉じるこずができたす。 それが実際にステンシルで機胜しない堎合、閉じる意味はありたせん...

..。

こんにちは@vidarc。 storiesOf()構文でこれを機胜させるこずができたしたか もしそうなら、私はあなたがそれをどのようにしたかを芋お本圓に興味がありたす。 共有するコヌド䟋たたはコヌドベヌスはありたすか
ストヌリヌブックずステンシルが統合され、プロゞェクトでうたく機胜しおいる䞀方で、最倧の問題点は、オブゞェクトの小道具などを備えたコンポヌネントに察しおdocument.createElement()でストヌリヌを䜜成するこずに頌らなければならないこずです。 vhtml解決できる堎合これ、それは玠晎らしいでしょう

それらを最新のCSFストヌリヌずしお盎接䜜成し、ストヌリヌを適切に機胜する圢匏に亀換するこずができたす。 たた、いく぀かのデヌタファクトリをむンポヌトしおデヌタオブゞェクトにデヌタを入力する堎合は、これらを䜿甚しお小道具を氎和させるこずができたす。

ありがずう。 CSFが今では物語を曞くための掚奚される方法であるこずに気づいおいたせんでした。 jsxアドオンをvhtmlbtwで動䜜させるこずができたしたか、それずも䞍可胜ですか

..。

こんにちは@vidarc。 storiesOf()構文でこれを機胜させるこずができたしたか もしそうなら、私はあなたがそれをどのようにしたかを芋お本圓に興味がありたす。 共有するコヌド䟋たたはコヌドベヌスはありたすか
ストヌリヌブックずステンシルが統合され、プロゞェクトでうたく機胜しおいる䞀方で、最倧の問題点は、オブゞェクトの小道具などを備えたコンポヌネントに察しおdocument.createElement()でストヌリヌを䜜成するこずに頌らなければならないこずです。 vhtml解決できる堎合これ、それは玠晎らしいでしょう

それらを最新のCSFストヌリヌずしお盎接䜜成し、ストヌリヌを適切に機胜する圢匏に亀換するこずができたす。 たた、いく぀かのデヌタファクトリをむンポヌトしおデヌタオブゞェクトにデヌタを入力する堎合は、これらを䜿甚しお小道具を氎和させるこずができたす。

ありがずう。 CSFが今では物語を曞くための掚奚される方法であるこずに気づいおいたせんでした。 jsxアドオンをvhtmlbtwで動䜜させるこずができたしたか、それずも䞍可胜ですか

そのため、JSXはステンシルコンパむラを介しおShadowdomに盎接解析されたす。 したがっお、コンパむラヌのストヌリヌブックぞの統合を䜿甚しおいる限り、暙準のステンシルコンポヌネントを䜜成し、それをCSFストヌリヌに含めおから、デヌタファクトリにむンポヌトしお小道具にデヌタを入力したす。

私が投皿したバニラリポゞトリは、これを箱から出しおすぐに実行できたす。VHTMLプラグむンは必芁ありたせん。たた、ステンシルずしお盎接蚘述しお出力するだけのラッパヌも必芁ありたせん。

storyOf構文を䜿甚できたすが、その堎合、埓来のdocument.createElementパタヌンに固定されたす。
たずえば、アむコンのこの叀いstoriesOf構文

import { storiesOf } from '@storybook/html';
/** 
  * Import readme from component into the story 
  */
import markdown from './readme.md';

storiesOf('1-Atoms/icon', module)
    .addParameters({ viewport: { defaultViewport: 'responsive' } })
    .add('knobs', () => {
        /**
         * Add Knobs to component panel
         * Set within Each knob as the third parameter
         */
        let icon = document.createElement('namespace-icon');
        icon.classList.add('namespace-action-plan');
        icon.size = 'medium';
        return icon;
    }, { notes: { markdown } });

VS

import centered from '@storybook/addon-centered/html';
import markdown from './readme.md';

export default {
  title: 'Atoms|Icon',
  decorators: [centered],
  parameters: {
    notes: { markdown },
    viewport: { defaultViewport: 'responsive' }
  }
};

export const knobs = (): HTMLNamespaceIconElement => {
  const icon: HTMLYooIconElement = document.createElement('namespace-icon');

  icon.classList.add('namespace-action-plan');
  icon.size = 'medium';

  return icon;
};

あたりカスタマむズしおいたせん。 Webpackにいく぀か远加されたした。 最初のtypescriptはCannot find name 'h'に぀いお文句を蚀いたす。 私のtsconfigにはjsx = reactずjsxFactory = hがありたす。 䞊郚の// <strong i="8">@jsx</strong> hプラグマ蚭定を䜿甚しおこれらの譊告を消すこずができたすが、DOMノヌドたたは文字列を返さないためにストヌリヌブック゚ラヌが発生したす。
詊しおみる https 
線集jsxでうたく機胜したす。 それをtypescriptで動䜜させる方法を理解するこずはできたせんが/

こんにちは@vidarc。 storiesOf()構文でこれを機胜させるこずができたしたか もしそうなら、私はあなたがそれをどのようにしたかを芋お本圓に興味がありたす。 共有するコヌド䟋たたはコヌドベヌスはありたすか

ストヌリヌブックずステンシルが統合され、プロゞェクトでうたく機胜しおいる䞀方で、最倧の問題点は、オブゞェクトの小道具などを備えたコンポヌネントに察しおdocument.createElement()でストヌリヌを䜜成するこずに頌らなければならないこずです。 vhtml解決できる堎合これ、それは玠晎らしいでしょう

@robaxelsen
@ storybook / reactを䜿甚し、webpack構成を倉曎しお、MDXファむルずずもにMDファむルを倉換するこずになりたした。 次に、jsondoc出力ステンシルが提䟛するノブに基づいおノブを䜜成するためのほんの少しのコヌド。 ステンシルコヌドに぀いおは、CLIからのストヌリヌブックのコピヌを䜿甚し、それらのファむルをpreview-head.htmlファむルにリンクしたす。 私の目的にかなりよく合いたす。

@ Edd-Strickland䟋ず説明をありがずう。 最埌の䟋では、芁玠の小道具ずしお、プログラムで属性を枡す必芁がありたす。 私の望みは、vhtmlたたはプレヌンステンシルコンパむラのいずれかを䜿甚しお、JSXずしおストヌリヌを蚘述できるこずでした。

したがっお、代わりに

export const knobs = (): HTMLNamespaceIconElement => {
  const icon: HTMLYooIconElement = document.createElement('namespace-icon');

  icon.classList.add('namespace-action-plan');
  icon.size = 'medium';

  return icon;
};

...私は曞くだろう

export const knobs = (): HTMLNamespaceIconElement => {
    return (
        <namespace-icon class="namespace-action-plan" size="medium">
        </namespace-icon>
    );
};

読みやすさずストヌリヌの䜜成のしやすさの䞡方。 それでは、これは䞍可胜ですか 可胜であれば、簡単な䟋を挙げおいただけたすか

簡単であれば、䞍和チャットで話すこずもできたす。 私はRob Axelsen#1373です。

線集䞊蚘に远加するために、CSFのドキュメントも確認し、JSX構文でhむンポヌトしおみたしたが、「ストヌリヌからHTMLスニペットたたはDOMノヌドが必芁です「シンプルストヌリヌ」」ずいう゚ラヌがスロヌされたす。 「コンポヌネント」の。」

export const simpleStory = () => <namespace-icon class="namespace-action-plan" size="medium"></name-spaceicon>;

これがWebコンポヌネントのプロパティを蚭定する必芁があるストヌリヌの䜜成に関するものである堎合は、 @storybook/web-components 。 lit-htmlを䜿甚htmlを宣蚀的に䜜成しおいたす。

これは、ストヌリヌブックずステンシルを䞊べお実行するずきに機胜するはずです:)

ステンシルがlithtmlを䜿甚しないこずを陀いお。 それはVueのこずです...

@shilman @ https 

ここにリンクされおいるリポゞトリにクロヌンアクションなどがないWebコンポヌネントパッケヌゞをダりンロヌドしおテストするにはどうすればよいですか

@ Edd-メむンストヌリヌブックmonorepoの単なるディレクトリであるStrickland

ステンシルがlithtmlを䜿甚しないこずを陀いお。 それはVueのこずです...

それはlit thingです🀔

ただし、それがWebコンポヌネントの矎しさです。内郚でステンシルが䜕を䜿甚するかは問題ではありたせん。 lit-htmlたたはその他の方法でストヌリヌを定矩できたす。 おそらく必芁なのは、プロパティを䜿甚しお「html」を蚘述する方法だけです。

lit-htmlの堎合、次のようになりたす

export myStory = () => {
  const dataArray = [{ name: 'john', age: 21 }, { name: 'maria', age: 28 }];
  return html`
    <my-lit-component .title=${'some title'} power="unlimited">
      <p> some light dom</p>
    </my-lit-component>
    <my-stencil-component super-mode .data=${dataArray}></my-stencil-component>
  `;
}

したがっお、ストヌリヌでChromeのDevToolsにアクセスする堎合は、lit-componentを遞択するず、次の詳现を読むこずができたす。

  • プロパティタむトル䟋console.log$ 0.title//タむトル
  • 属性パワヌ䟋console.log$ 0.getAttribute 'power'//無制限

ステンシルコンポヌネントの堎合は「同じ」になりたす

  • プロパティデヌタ䟋console.log$ 0.data// [{name 'john'、age21}、{name 'maria'、age28}];
  • 属性スヌパヌモヌド䟋console.log$ 0.hasAttribute 'super-mode'// true

lit-htmlはdomをレンダリングするだけです... dom芁玠が登録されおいる堎所/方法lit-htmlは知らない/気にしたせん-したがっお、各コンポヌネントに䜿甚されるテクノロゞヌは完党に異なる可胜性がありたす...たずえば、コンポヌネントを誰にするこずができたすlit-element、stencil、vanilla HTMLElementであるか、完党なreact / vue / angularアプリケヌションのWebコンポヌネントラッパヌである可胜性もありたす...😱

ステンシルはコンパむラヌかもしれたせんが、Webコンポヌネントにコンパむルされるず、単なるdomずしお䜿甚できたす🀗

PS @storybook/web-componentsはlit-htmlを䜿甚したす

Stencilチヌムはコンパむラヌをリファクタリングしおおり、これによりStencil / Storybookの統合が倉わるず思いたす。

誰かがReactチェックアりトhttps://github.com/the-road-to-learn-react/use-custom-elementを介しおステンシルずストヌリヌブックを䜿甚する堎合は、配列ずオブゞェクトを枡すこずができたす。 埌で自分で詊しおみたすが、これは䞀郚の人に圹立぀可胜性がありたす。

興味のある方のために、Storybook / reactずStencilを組み合わせるためのスタヌタヌを公開したした https 

StorybookはWebコンポヌネント甚のStorybookを開発しおいるようです。 ステンシルで詊しおみたしたが、かなりうたく機胜しおいたす。

https://github.com/storybookjs/storybook/tree/next/app/web-components

@ sem4phor蚭定を共有できたすか

Webコンポヌネントの新しいストヌリヌブックのむンストヌルでlit-htmlに関する゚ラヌが発生したす

ERROR in ./node_modules/@storybook/web-components/dist/client/preview/render.js
Module not found: Error: Can't resolve 'lit-html' in '/Users/david/www/stencil-starter/node_modules/@storybook/web-components/dist/client/preview'
 @ ./node_modules/@storybook/web-components/dist/client/preview/render.js 20:15-34
 @ ./node_modules/@storybook/web-components/dist/client/preview/index.js
 @ ./node_modules/@storybook/web-components/dist/client/index.js
 @ ./.storybook/preview.js
 @ multi ./node_modules/@storybook/core/dist/server/common/polyfills.js ./node_modules/@storybook/core/dist/server/preview/globals.js ./.storybook/preview.js ./.storybook/generated-entry.js (webpack)-hot-middleware/client.js?reload=true&quiet=true

@dmartinjsは、デフォルトの䟋でコンポヌネントをレンダリングするために䜿甚されおいる「lit-html」を自分でむンストヌルする必芁がありたす。

@ Edd-Strickland Webコンポヌネント甚のストヌリヌブックを远加したした。6.0.0では、ポリマヌ甚のストヌリヌブックは非掚奚/曎新されなくなりたす。

Webコンポヌネントのストヌリヌブックをステンシルコンポヌネントで機胜させるために必芁なこずはありたすか

WebコンポヌネントストヌリヌブックはステンシルWebコンポヌネントコンポヌネントをレンダリングできたすが、ステンシルはブラりザでそのたた実行するこずはできず、コンパむルする必芁がありたす。 したがっお、ストヌリヌブックを実行する前にステンシルコンポヌネントをコンパむルしない限り、特別な凊理が必芁です。

@LarsDenBakkerは、䞊蚘を機胜させるためにwebpackプラグむン/ロヌダヌを远加するこずです。 ステンシルコンポヌネントをHMRにしお動的にコンパむルするこずが望たしいず思いたす

はい、ステンシル自䜓はロヌルアップを䜿甚したすが。 コンパむルステップを別のプロゞェクトずしお䜿甚できる堎合は、おそらくそれをwebpackプラグむンにするこずができたす。 そのための内郚に぀いおは十分に知りたせん。

ステンシルはWebpackを䜿甚したせん。 代わりにロヌルアップを䜿甚したす。

私が蚭定したリポゞトリを䜿甚しお、それに応じお機胜し、-watch呌び出しを䜿甚しおステンシルで同等のHMRを有効にするこずができたす。 そのため、ステンシルが曎新されたずきにステンシルがリロヌドされ、曎新されたずきにストヌリヌブックがリロヌドされたす。

したがっお、これでカバヌされるため、毎回構築する必芁はありたせん。

最近、リポゞトリを最新のSBたたはステンシルで曎新する時間がありたせんでしたが、このプロセスは匕き続き機胜し、リポゞトリを最新バヌゞョンにアップグレヌドできたす。

ありがずう

@ Edd-Strickland Webコンポヌネント甚のストヌリヌブックを远加したした。6.0.0では、ポリマヌ甚のストヌリヌブックは非掚奚/曎新されなくなりたす。

Webコンポヌネントのストヌリヌブックをステンシルコンポヌネントで機胜させるために必芁なこずはありたすか

はい、それでもラむブリロヌド/ HMRは実際には考慮されおいたせん。䞊蚘で詳しく説明したように、webpackの䜿甚ずロヌルアップの䜿甚の違いがあるため、珟時点でSB WCバヌゞョンを䜿甚する堎合は、レンダリングするためにステンシルのフルビルドが必芁です。その埌、HMRのすべおの良さがステンシルに倱われたす。

このバヌゞョンは珟圚、ポリマヌバヌゞョンではなくHTMLバヌゞョンに基づいおいるため、このバヌゞョンを廃止するずいう長期的な目暙に圱響を䞎えるこずはありたせん。

@LarsDenBakkerは、䞊蚘を機胜させるためにwebpackプラグむン/ロヌダヌを远加するこずです。 ステンシルコンポヌネントをHMRにしお動的にコンパむルするこずが望たしいず思いたす

私はそれをお勧めしたせん、Stencilのwebpackバヌゞョンは非垞に難しい開発パスであり、必芁なしに䟝存関係のフットプリントを増やしたす、私が䜜成したリポゞトリに瀺されおいるように、すべおでラむブで再コンパむルされるほずんどの時蚈でステンシルを実行するこずは完党に可胜ですWCたたはSBむンスタンスの倉曎。 䞡方を蚱可するように構成するこずです。

はい、ステンシル自䜓はロヌルアップを䜿甚したすが。 コンパむルステップを別のプロゞェクトずしお䜿甚できる堎合は、おそらくそれをwebpackプラグむンにするこずができたす。 そのための内郚に぀いおは十分に知りたせん。

すでにステンシルWPプラグむンがありたすが、これはサポヌトされおいないか、コミュニティで承認された䟝存関係ではありたせん。

cc @ jthoms1 @adamdbradley

@dmartinjsは、デフォルトの䟋でコンポヌネントをレンダリングするために䜿甚されおいる「lit-html」を自分でむンストヌルする必芁がありたす。

@ sem4phor蚭定を共有できたすか

Webコンポヌネントの新しいストヌリヌブックのむンストヌルでlit-htmlに関する゚ラヌが発生したす

ERROR in ./node_modules/@storybook/web-components/dist/client/preview/render.js
Module not found: Error: Can't resolve 'lit-html' in '/Users/david/www/stencil-starter/node_modules/@storybook/web-components/dist/client/preview'
 @ ./node_modules/@storybook/web-components/dist/client/preview/render.js 20:15-34
 @ ./node_modules/@storybook/web-components/dist/client/preview/index.js
 @ ./node_modules/@storybook/web-components/dist/client/index.js
 @ ./.storybook/preview.js
 @ multi ./node_modules/@storybook/core/dist/server/common/polyfills.js ./node_modules/@storybook/core/dist/server/preview/globals.js ./.storybook/preview.js ./.storybook/generated-entry.js (webpack)-hot-middleware/client.js?reload=true&quiet=true

これに関するフィヌドバックはありたすか この䟝存関係を自分でむンストヌルする必芁がありたす。 @ storybook / web-componentsで䜿甚されおいる堎合は、䟝存関係ずしお自動的にむンストヌルされる必芁がありたす...

@LeeBurtonは、ピアの䟝存関係ではありたせんか そうであるかどうかはわかりたせんが、そうでない堎合はおそらくそうあるべきですcc

私がテストしおいたずきの@ LeeBurtonlit -htmlはピアの䟝存関係でした。 ピアの䟝存関係を自分でむンストヌルする必芁があるのは通垞のこずです。 https://nodejs.org/es/blog/npm/peer-dependencies/

䟡倀があるので、 .storybook/preview.jsでこの構成を䜿甚しおステンシルを取埗したした

import { defineCustomElements } from "../dist/esm/loader.mjs"
defineCustomElements()

configure(require.context('../src', true, /.*\.stories\.(js|mdx)$/), module);

@idmyn詊しおみたしたが、コンパむル䞭にsrcファむルに加えられた倉曎は、手動でハヌドリロヌドしないずブラりザに読み蟌たれたせん。

npm-run-allパッケヌゞず䞊行しおstart-storybookを実行しながら、1぀のnpm実行スクリプトでりォッチを有効にしおStencilのビルドをロヌカルで実行するこずで動䜜させたした。

main.jsで以䞋を䜿甚しお、Stencilのdistファむルを監芖するようにstorybookのwebpack構成を構成したした。

const path = require('path');
const glob = require('glob');

module.exports = {
  webpackFinal: (config) => {
    // watch all revelant files in dist folder
    const distDir = path.resolve(__dirname, '../dist');
    const files = glob.sync(`${distDir}/**/*.entry.js`, { absolute: true, ignore: ['**/*.system.entry.js'] });
    config.entry.push(...files);
    return config;
  },
};

プロゞェクトのパス/ファむルを少し倉曎する必芁があるかもしれたせんが、これは私にずっおはうたくいきたした。

@DesignByOnyxたたは@ Edd-Stricklandは、゜リュヌションを6のプリセットに倉換するこずを怜蚎したこずがありたすか 私はレポず-通垞の方法の䞡方を䜿甚したした-私はそれぞれのビットが奜きです:-)

@ Edd-Stricklandのコピヌを6.0.0-betaにかなりうたく移動したしたが、倉曎を芋぀けたずきにすべおが再構築されるずは限りたせん䟋readme.md。

これは@paulfeltonで公開されおいたすか

今です、あなた自身を助けおください:-)

Eddのプロゞェクトをフォヌクしたした。 @ Edd-Strickland、PRを入れたしょうか。 それは良いレビュヌが必芁です、私はこれの専門家ではありたせん。

パッケヌゞをバンプし、構成を新しい圢匏にリファクタリングしたした。 ステンシルreadmeをむンポヌトするストヌリヌを取埗するには、タむピングを远加しおtsconfigで参照し、「notes」を「docs」に倉換する構成を远加する必芁がありたした。

りィッシュリスト

  • さお、統合によっおステンシルコンポヌネントから基本的なストヌリヌが生成されるこずを望んでいたす。 理想的には、mdxずCSFの䞡方。
  • StorybookHTMLからStorybookWebcomponentフレヌバヌに移行したいのですが、そうするこずの利点があるかどうかはわかりたせん。 より自然に感じたす。
  • ステンシルドキュメントを「経由」ノヌトに移動するのではなく、より自然に新しいアドオンドキュメントにむンポヌトしたいず思いたす。
  • プリセットを介しおこれすべお:-)

@paulfelton私から䜕か必芁ですか

@ndelangenわかりたせん。 ご存知かもしれたせんが、私はステンシルずストヌリヌブックの䞡方にかなり慣れおいないので、さたざたな問題のディスカッション、グヌグルなどからドラッグできるものを䞀緒にいじくりたわしたした。

私もスタヌタヌレポゞトリに参加したした。非垞に刺激を受けたしたが、この問題でのすべおの倚倧な努力に感謝したすすべおに感謝したす。

https://github.com/elwynelwyn/stencilbook-ding

@storybook/web-componentsを䜿甚し、Essentialsアドオンコントロヌル、アクションなどを操䜜したす。 この段階でのすべおの最新バヌゞョン。

Stencil開発サヌバヌずStorybookプレビュヌフレヌムの間のいく぀かの远加の統合したがっお、Stencil゚ラヌオヌバヌレむはStorybookにむンラむンで衚瀺されたす-より良いDXdeetsに぀いおは./storybook/preview-body.htmlず./src/index.htmlを確認しおください。

〜Stencildevserverをstart-storybookマッシュしたので、1぀のコマンドを実行するだけで、舞台裏でステンシルがスピンアップしたす。〜
線集これをconcurrently + wait-on簡略化したした-ステンシルがスピンアップするのを埅っおから、ストヌリヌブックに進みたす

コヌドをステンシルコンポヌネントたたはストヌリヌブックストヌリヌに倉曎するず、プレビュヌフレヌムがリロヌドされたすストヌリヌブックアプリ党䜓ではありたせん。 これは適切なHMRではありたせんが、開発するのはかなり良いこずです。

良い。 リンクが機胜したせん。

おっず、リポゞトリは珟圚公開されおいたす^

ステンシルv2ず@storybook / web-components v6を䜿甚しおボむラヌプレヌトリポゞトリをここにたずめたした https 

https://github.com/miriamgonp/stencil-web-components-boilerplateには、Storybook / Stencilの䞍和チャンネルから@miriamgonpによっお

これらの2぀のリポゞトリは芋栄えがしたす。 それらが1぀に統合された堎合は良い远加になりたす。 そしお、誰かがこれらの2぀のリポゞトリに基づいお、 Intro to Storybookのチュヌトリアルで貢献しおくれるなら、私たちは本圓に感謝したす。 誰かが私たちを助けおくれるかどうか教えおください。私は喜んでステンシルを䜿甚するコミュニティのメンバヌを助けに行きたす。

私は適切なhmr゜リュヌションを手に入れたした;もうすぐです

私は適切なhmr゜リュヌションを手に入れたした;もうすぐです

ここにありたす
Stencil 2 +Storybook 6+叀いステンシルバヌゞョンも機胜するはずです;
https://github.com/dutscher/stencil-storybook
楜しんで也杯

線集gh-pagesのストヌリヌブック付きhttps://dutscher.github.io/stencil-storybook/index.html

先週、これを私たちのプロゞェクトに亀換し、私たちに関係のないビットBootstrap、scss、クロマチックなどを取り陀き、いく぀かのマむナヌなものたずえば、@にあるためにむンポヌトされたすべおの堎所でpackage.json名が機胜しないを修正した埌myorg / my-proj圢匏それは本圓にうたく機胜しおいたす。

1日ほど䜿甚しおいお、HMRは玠晎らしいです

@elwynelwynストヌリヌブック偎で私たちがしなければならないこずは䜕だず思いたすか

@ndelangen重芁なこずは次のずおりです。

  1. プロキシhttps://github.com/dutscher/stencil-storybook/blob/master/scripts/proxy.js
  2. main.jsを介したステンシルプロダクションむンゞェクションhttps://github.com/dutscher/stencil-storybook/blob/master/.storybook/main.js#L30
  3. devおよびprod甚のシンプルで最小限のnpmスクリプトhttps://github.com/dutscher/stencil-storybook/blob/master/package.json

也杯

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡