Angular 2ã®ãµããŒããããŒããããã«å«ãŸããŠããããšãèªèããŠãããéåžžã«æºè¶³ããŠããŸãã
ãªããžããªããã®ç®çã«é©åãããããã®é¢é£ããè©Šã¿ãå
±æãããã£ãã®ã§ãããããã§é¢é£ããã¹ã¬ããããŸã èŠã€ãããªãã£ãã®ã§ãäœæããã»ãããããšèããŸããã
ç§ã¯ãŸã PoCããŸãšããããšãã§ããŸããã§ããããããããããã§ã®æåã®ã³ãããããã®Angularããããããã€ãã®ã€ã³ã¹ãã¬ãŒã·ã§ã³ãæäŸããã®ã«åœ¹ç«ã€ãããããŸããã ãã®ãªããžããªã®å€ãããŒãžã§ã³ããã©ãŒã¯ããŠããããšã¯ããã£ãŠããŸãããæŠå¿µã¯åŒãç¶ãé©çšãããã¯ãã§ãã
ã³ã¢UIãå¥ã®ã¢ããªã«ããŸããã NG2ã«çŽæ¥äœ¿çšããäºå®ã§ãã åç §ïŒ https ïŒ
涌ããã 楜ãã¿ã«ããŠããŸãïŒ :)
ããã @ arunoda ãããã§ããã®ã¢ãããŒãã¯ã©ããªãã®ïŒ
ng2åºæã®ã¹ããŒãªãŒããã¯UIãäœæããŸããïŒ ããªããã¡ãéæãããããšã®é«ã¬ãã«ã®èª¬æãååŸããç§ãå©ããããšãã§ãããã©ããã確èªããããšã«èå³ããããŸã
Angular 2 APIã¯ãRC5ã®ãªãªãŒã¹ã§å®å®ããŸããã çŸåšãé倧ãªå€æŽã¯ãããŸããã ããã§ããããéçºãå§ããè¯ãææã§ãã ccïŒ @arunoda @mnmtanish
@arunoda ïŒããã¯ããŒããããã§ã¯äœããšæãåŸåããããŸãããAngularã®å Žåããã®åå²ã§ã¯ãçè«äžã®ng2-storybook
storybook-ui
åå¿ããããšããã¢ã€ãã¢ã«ãªããŸããã€ã³ã¿ãŒãã§ãŒã¹ã¯Angularã³ã³ããŒãã³ããåã蟌ã¿ãŸããïŒ ããã¯è¡ãããŸãããïŒ
@ tycho01ãã®éãã§ãã ããã¯ç§ãã¡ã®åªå
é äœãå°ãäœãã§ãã
storybook-uiãããŒã¹ãšããŠå§ãããããšããã®ã§ããã ãããã£ãŠãã»ãšãã©ã®ã¢ããªã³ã¯ããã䜿çšã§ããŸãã
ç§ã¯èª°ããããã«åãçµã¿å§ããããã®å©ããæ¢ããŠããŸãã ãããããªããç§ãã¡ã®Slackã§ç§ã«pingããŠãã ããã ãã£ãšè©±ããŸãããã
@ tycho01ãããªããã¡ã¯ãããªãããã®äžã§äœæ¥ãéå§ãªããç§ã«ç¥ãããŠ@arunodaã
@alterx ïŒç§ãåŸããã€ã³ã¿ïŒ storybook-react
ã¯storybook-ui
ãšã¯å¥ã§ãïŒiframeå
ã§å®è¡ãããŸãïŒã 次ã®ã¹ãããã¯ãAngularããŒãžã§ã³ã«çœ®ãæããããšãã§ãããã©ãããå®éšããããšã§ãã ç§ã®æåŸã®è©Šã¿ä»¥æ¥å§ããŠããŸããã
ããããã§ãã¯ã¢ãŠã-https ïŒ//twitter.com/amcdnl/status/804776546246520832
@ tycho01 ãç§ã¯ãœãŒã¹ããã§ãã¯ããŸããããããŠãããã¯åºæ¬çã«æ å ã®iframeïŒhttps://github.com/storybooks/react-storybook/blob/master/src/client/manager/preview.jsïŒã§ããå®å šã«å¥åã®reactã³ã³ããŒãã³ããæã£ãŠããŸãã ãã®ãã¬ãã¥ãŒiframeã«ng2ã¹ããŒãªãŒãããŒãã§ããã¯ãã§ãã
react-storybook
åºæ¬çã«ã storybook-ui
ã«ãã£ãŠæäŸãããProvider
æ¡åŒµããåè¿°ã®Preview
ãã¬ã³ããªã³ã°ããã¹ããŒãªãŒAPIãåŠçããŸãã 次ã«ããã®ãããã€ããŒã®æ°ããã€ã³ã¹ã¿ã³ã¹ãrenderStorybookUI
æž¡ãããŸã
import renderStorybookUI from '@kadira/storybook-ui';
import Provider from './provider';
const rootEl = document.getElementById('root');
renderStorybookUI(rootEl, new Provider());
ãã®åŸã storybook-ui
ãå¶åŸ¡ãããã³ã³ããã¹ãïŒãããã€ããŒãå«ãïŒãæ§ç¯ããã¢ããªãäœæããŸãïŒmantra-coreã®createApp
ïŒã 次ã«ããããã€ããŒïŒããã³ä»ã®ã³ã³ããã¹ãããããïŒãui
ã¢ãžã¥ãŒã«ïŒhttps://github.com/storybooks/storybook-ui/blob/master/src/modules/ui/routes.jsïŒã«æ¿å
¥ãããŸãã ïŒ react-storybook
äœæãããšãã«å®çŸ©ãããrenderPreview
ã¡ãœããã䜿çšããŠãã¬ãã¥ãŒãäœæããŸã
@arunoda ãäœã足ããªããã®ãããã°æããŠãã ãã
@amcdnl ãããã¯ææã«èŠããŸãã ãããã©ã®ããã«æ©èœãããã«ã€ããŠç°¡åã«èª¬æããŠããã ããŸãããã ïŒæŽŸæãªãã®ã¯ãªããå šäœåã ãã§ãïŒ
@amcdnl ïŒãªã³ã¯ããŠãããŠããããšãããã§ãã¯ããŠã¿ãŸãã
ç·šéïŒããªãã¯ããããããã§äœããã¢ãæã£ãŠããŸããïŒ å®è¡ããæºåãã§ããŠãããã®ãèŠã€ããã®ã«åé¡ããããŸãã
@ MikeRyan52 ^^
@alterxããã ããªãã¯100ïŒ
æ£ããã§ãã
ãŸããã¹ããŒãªãŒãäœæããã«ã¯ãReactStorybookãšåæ§ã®APIãå
¬éããå¿
èŠããããŸãã
angular-storybook
ãªã©ããã€ã³ããŒããããå¯èœæ§ããããŸãã
@arunodaããªããèšåããangular-
@bcowgill afaikããã¯ãäžèšã®@amcdnlãé€ããŠããŸã ååšããŠããŸããã
ãããä»ãããŸã-httpïŒ//www.angularplayground.it/
çŸåšããŒããããã«ãããŸãïŒ
https://github.com/storybooks/storybook/blob/master/ROADMAP.md#angular
ãã®ãããVueã®ã¹ããŒãªãŒããã¯ã¯ãŸããªããªãªãŒã¹ãããäºå®ã§ãð
ããã¯ãNG2ã®ããŒãžã§ã³ãäœæããæ¹æ³ã®ããªãè¯ãäŸãè¿œå ããŸãã
ãã®ã¹ã¬ãããèŠãŠãäžç·ã«åããŠãããå®çŸãããŠãããåæ¢ãªéã¯ããŸããïŒ
ç§ã¯èŠãŠã¿ãããšãã§ããŸããããªãã¯äŸ¿å©ãªãªããžããªURLãæã£ãŠããŸããã @ ndelangen ïŒ
ããªãã¯ãããèŠãŠããŸãð
Storybookã¯ã¢ãã¬ãã§ããããã«ã¯ããã±ãŒãžããããnpmã«åå¥ã«å ¬éãããŠããŸãã
çŸåšãvueã¢ããªã¯ãŸã ãã¹ã¿ãŒã«ãªã£ãŠããªãããã次ã®3ã€ã®ãªã³ã¯ã䜿çšããŠãã ããã
https://github.com/storybooks/storybook/tree/release/3.2/app/vue
https://github.com/storybooks/storybook/blob/release/3.2/app/vue/src/client/preview/render.js
https://github.com/storybooks/storybook/blob/release/3.2/app/vue/src/server/config/webpack.config.js#L40
render.jsã¯ãVueåºæã®ã³ãŒãã®ã»ãšãã©ãååšããå Žæã§ããããµãŒããŒéšåã«ã¯ç°ãªãwebpackæ§æããããŸãã
æåã¯ããããã®ã³ãŒããè€è£œããŠã倧äžå€«ã§ãïŒ ããã«ã€ããŠã¯åŸã§èª¬æããŸãã æ¬åœã«äžè¬çãªãã®ãšããã§ãªããã®ãèŠã€ããåŸã
ã¯ããã«ãç§ã¯èšãã ãã
@shilmanã¯ç§ãã¡ã®ãªãªãŒã¹ãã¹ã¿ãŒã·ã§ãã§ãðšâð³
Slackã«åå ããŠãgithubãããå°ãéããã£ãããšã¯ã¹ããªãšã³ã¹ãåŸãããšãã§ããŸãð¬
ããŒãã§ã¯ãã@ ndelangenïŒ
ã³ãŒããèŠãŠãSlackãã£ãã«ã«åå ããŸãïŒD
@alterxããªãã¯ä»ããã«åãçµãã§ããŸããïŒ ç§ã¯ä»vue.jsããŒãžã§ã³ã®ã¯ããŒã³ãäœæããŠããŸã
@ Jordan-ããŒã«ãåºæ¬çãªã¢ããªãæ©èœããŠããPRããã§ã«ãããŸãã
ïŒ1474ãåç
§ããŠãã ãã
ç§ã¯çŸåšãã¢ããªã³ããã§ãã¯ããŠãç®±ããåºããŠããã«æ©èœãããã®ã確èªããŠããŸãã 調æŽã§ããããã«ãSlackãã£ãã«ã«åå ããŠããã ããŸãããã
@alterxãã¡ããã§ãã https://storybooks-slackin.herokuapp.comãããŠã³ããŠããããã«èŠãããã£ã³ãã«ã¯äœã§ããïŒ
ãã£ãšãããã¯ããã§ããã¯ãã§ãð€
ãã¶ã@ndelangenããããå©ããããšãã§ããŸãã
ãšãããããç§ã®PRã¯åºæ¬çãªäœæ¥ïŒã³ã³ããŒãã³ãã®ã¬ã³ããªã³ã°ãå
¥åã®éä¿¡ïŒãã«ããŒããŠããŸãã ä»ã®äººãvue
ãšreact
ã§è¡ã£ãããšãšã¯å°ãç°ãªããŸããã angular
ã®ããæ¹ïŒ NgModules
ïŒã«ã¯ããã€ãã®å€æŽãå¿
èŠã§ããã
3.3ãªãªãŒã¹ã®äžéšãšããŠAngularïŒ2+ïŒãµããŒããå«ããããšãç®æããŠããŸãã
ãããherokuã¯ã¢ããªãã·ã£ããããŠã³ããããšã«æ±ºããã®ã§ãnow.shã«ãããã€ããŸããã
https://now-examples-slackin-nqnzoygycp.now.sh/
¯\_(ã)_/¯
人ã ããã®çš®ã®ãããžã§ã¯ãxDã«åã«gitterã䜿çšããªãçç±ãããããŸãã
Hey Guysã¯ã誰ãããŸã ããã«ç©æ¥µçã«åãçµãã§ãããã©ããã確èªãããã£ãã ãã§ããïŒ
ã¯ããäœæ¥ã¯é²è¡äžã§ãïŒ
https://github.com/storybooks/storybook/pull/1474
ã¯ããä»æ¥ãã³ã³ãã¥ãŒã¿ãŒã«å ããå€æŽãéä¿¡ããæéãèŠã€ããå¿ èŠããããŸãã ããããæŒé£æã«ãããããŸãð
ããŒãžããã§ãšãããããŸãïŒ
npm i -g @storybook/[email protected]
ãè©ŠããŠã¿ãããšãã§ããŸããããããšããã¬ã€ããã«ã¯ãã£ãšæåã®ã»ããã¢ãããå¿
èŠã§ããïŒ
ããããã¹ãããŠè²¢ç®ããããšæããŸãð
@shilman @alterxAngularã¢ããªã§ã¢ã«ãã¡ãªãªãŒã¹ãè¡ããããšããå°è±¡ãåããŸãããïŒ
ãŸã ããã§ã¯ãªãããã§ããïŒ
ã©ããããæ©ã1ãè¡ãããšãã§ããŸããïŒ ããã®@tomatosourceã¯ç§ãã¡ã®ããã«ããã€ãã®ãã¹ããåãã§è¡ããŸãð
@shilmanã¯ãAngular slackãã£ãã«ã§ãæ°æ¥ä»¥å ã«ããªãªãŒã¹ããããšè¿°ã¹ãã®ã§ããŸã ãªãªãŒã¹ãããŠããªããšæããŸã:)
æŽæ°ã¯ãããŸããïŒ :-)
å®éã«ã¯ããã§ã=ïŒ https://github.com/storybooks/storybook/releases/tag/v3.3.0-alpha.3
@Hypnosphiå®éã«ãããã©ã®ããã«ã€ã³ã¹ããŒã«ããŸããïŒ ãµããŒããããŠããªããããžã§ã¯ãã¿ã€ãã ïŒã³ãŒãïŒæªæ€åºïŒ
@aaronksaunders CLIã®ãããã°ã«åœ¹ç«ã€ãªããžããªãå ±æã§ããŸããïŒ ãŸããæåã§å®è¡ããå Žåã¯ãå®å šãªã»ããã¢ãããåãããµã³ãã«ã¢ããªãããã«ãããŸãïŒ https ïŒ
@alterx @tomatosourceãªãªãŒã¹ãé ããŠç³ãèš³ãããŸãã-çŸåšãªãªãŒã¹ãããŠããããã¹ãã«ãååããã ããã°å¹žãã§ãã
ã©ã®ããŒãžã§ã³ã®AngularããµããŒãããŠããŸããïŒ
@ToniaDemchuké¢é£ïŒ
https://github.com/storybooks/storybook/pull/1474#issuecomment -329659825
https://github.com/storybooks/storybook/pull/1474#issuecomment -335527228
@Insayt @ LTiger14 @MTariqAziz @MathieuFouillet @Quramy @RemiAWE @VadimDez @aitboudad @bermanboris @cheapsteak @ã¯ãªã¹ãã£ã³ã»bromann @diagramatics @dlcardozo @ ELAD-morphisec @jbueza @johannesjo @jshthornton @ justinlee0777 @mixn @ npatta01 @qrrock @realappie @ruedap @ tiny-dancer @ tycho01 @ priley86
Angular2 +ã®ãµããŒãã¯ïŒã¢ã«ãã¡ã§ãã3.3.0-alpha.4
æ£ç¢ºã«ã¯ïŒ@alterxããè¶
人çãªåªåã®ãããã§ãããåããŠååŸããŸãã ãªãªãŒã¹æºåãã§ããããã«ããã¹ãã«ãååãã ããã
ã»ãã®æ°åã§å§ããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã
cd my-angular-project
yarn add @storybook/cli<strong i="33">@alpha</strong>
yarn getstorybook
yarn storybook
open http://localhost:6006
ãªããžããªã®examples/angular-cli
ã¹ããŒãªãŒããã¯ã¯æ¬¡ã®ããã«ãªãããã©ãŠã¶ã«ç°¡ç¥åãããããŒãžã§ã³ã衚瀺ãããŸãã
ãã²ãè©Šãããã ããåé¡ãããããŸããããã¡ããããç¥ãããã ããã Storybook slack #angularãã£ã³ãã«ã«åå ããŠããªã¢ã«ã¿ã€ã ã®ãã«ãã
ãååããã ãèª ã«ããããšãããããŸãïŒ
yarn getstorybook
å®è¡ããŠãã@shilmanã¯ã次ã®ãšã©ãŒãã¹ããŒããŸãã
(function (exports, require, module, __filename, __dirname) { import updateNotifier from 'update-notifier';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
ãã¡ã€ã«node_modules/@storybook/cli/bin/index.js:1
ãå€æŽãããšãåé¡ã解決ããŸãã
require("babel-register")({
ignore: /node_modules\/(?!@storybook)/
});
å¥åŠãªããšã«ãç§ãã¡ã¯å®éã«cli@alpha
ã§babel-registerã䜿çšããŠããŸã
@aitboudadã©ã®ããŒãããŒãžã§ã³ã䜿çšããŠããŸããïŒ
ã©ã®ããŒãããŒãžã§ã³ã䜿çšããŠããŸããïŒ
v8.9.0ãããŒãã®ããŒãžã§ã³ãšã¯é¢ä¿ãããŸãããã node_modules
ãããã¹ãŠã®ãã¡ã€ã«ã®ãã©ã³ã¹ãã€ã«ãç¡èŠããbabelã«é¢ãããã®ã§ã
@shilmanç§ãæã£ãŠãã2çªç®ã®åé¡ã¯
odule build failed: Error: Typescript emitted no output for node_modules/@storybook/angular/dist/client/preview/angular/app.token.ts.
/node_modules/@storybook/angular/dist/server/config/webpack.config.js
ã§transpileOnlyãtrueã«èšå®ããããšã§è§£æ±º
{
test: /\.ts?$/,
use: [
{
loader: 'ts-loader',
options: {
transpileOnly: true
}
},
{ loader: 'angular2-template-loader' }
]
}
ã«ã¹ã¿ã NgModule
æž¡ãïŒ
çŸåšãçŸåšã®å®è£
ãéåžžã«å¶éããã«ã¹ã¿ã NgModuleãæž¡ãæ¹æ³ã¯ãããŸããã
node_modules
ãããã¹ãŠã®ãã¡ã€ã«ã®ãã©ã³ã¹ãã€ã«ãç¡èŠããbabelã«ã€ããŠã§ã
ãªãã»ã©ãä¿®æ£ããŸãã 以åã¯ã©ã®ããã«æ©èœããŠããã®ã ããã
@aitboudadããããããã°ããŠãããŠããããšãïŒ @Hypnosphiã¯CLIã®åé¡ãä¿®æ£ãããªãªãŒã¹ããã°ããã§ãã ããã«è§åºŠä¿®æ£ãååŸããããšããŸãïŒ
https://github.com/storybooks/storybook/releases/tag/v3.3.0-alpha.4
@aitboudad ãç§ãã¡ã¯ãã®äžè¶³ããŠããæ©èœãèªèããŠãããããã
ããªãã®æ£ç¢ºãªãŠãŒã¹ã±ãŒã¹ã¯äœã§ããïŒ å€åç§ãã¡ã¯äœããç解ããããšãã§ããŸãã
ãŸãããã©ã³ã¹ãã€ã«ã®ã¿ã䜿çšãããšãåãã§ãã¯ãäžèŠã«ãªããŸãã ãã®å€æŽãè¡ãåã«ãããã調ã¹ãå¿ èŠããããŸãã
@alterxããªãã®æ£ç¢ºãªãŠãŒã¹ã±ãŒã¹ã¯äœã§ããïŒ
ã³ã³ããŒãã³ãããããªã¢ã«ãªã©ã®å€éšã¢ãžã¥ãŒã«ãå¿ èŠãšããå ŽåãçŸåšã®ã¢ãããŒãã§ã©ã®ããã«åŠçã§ããŸããïŒ
ãã®å Žåããããã€ããŒãã€ã³ããŒããã¹ããŒãïŒå¿ èŠãªå Žåã¯ãidkãã«ã¹ã¿ã èŠçŽ ïŒã§ååã§ãã ã«ã¹ã¿ã ã¢ãžã¥ãŒã«ãçµã¿èŸŒãéã®åé¡ã¯ããŠãŒã¶ãŒãéä¿¡ã§ããã³ã³ããŒãã³ãã®éãå¶åŸ¡ã§ãããç Žæããå¯èœæ§ãããããšã§ãã Storybookã¯ãã³ã³ããŒãã³ããåé¢ããããŠããããšããŠéçºããã³ãã¹ãããããšãç®çãšããŠããŸãã ããã¯ReactãšVueã§å°ãç°ãªããŸãããè§åºŠã«ã€ããŠã¯ããã€ãã®ä»®å®ãè¡ããã¹ã³ãŒããå¶éããå¿ èŠããããŸãã
ç§ã¯ãã€ã³ããŒããšå®£èšã䜿çšããŠãããã€ããŒãšã¹ããŒããæž¡ãããšãã§ããããã«ããå¿ èŠããããã®ã«åãçµãã§ããŸãããããã¯ããå°ãè€éã§ãã ãã®çš®ã®ãã£ãŒãããã¯ã¯å®ç§ã§ãããã¹ãããŠäººã ãäœãå¿ èŠãšããŠãããã確èªã§ãããã®ãå ¥æãããã£ãã®ã§ãã
@aitboudadæ°ããäœæãã@angular/cli
ã¢ããªãšgetstorybook
ãŠåé¡ãåçŸããããšããŸãããããã¹ãŠãæåŸ
ã©ããã«æ©èœããŸãã ã»ããã¢ããã«ã€ããŠããå°ã詳ããæããŠãã ããã AngularããŒãžã§ã³ïŒ TypeScriptããŒãžã§ã³ïŒ
ããã«ãã¹ãããããšã¯ã§ããŸããã
@alterxã¯åè©Šè¡ããŸããããæ°ããã¢ã«ãã¡ããŒãžã§ã³ã§æ£åžžã«åäœããŠããããã§ããããããšãããããŸãã
ãããå®ç§ã ïŒ
ãŸããäœæããã¢ãžã¥ãŒã«ã«ã€ã³ããŒãããããã€ããŒãªã©ãæäŸããæ¹æ³ããµããŒãããäºå®ã§ãã®ã§ããå®å¿ãã ããã ç§ãã¡ã¯ãããç解ããå¿
èŠããããŸã:)
次ã®ããã±ãŒãžããŒãžã§ã³ã§storybook / examples / angular-cliãå®è¡ããããšããŸããã
"dependencies": {
"@angular/animations": "4.3.5",
"@angular/common": "4.3.5",
"@angular/compiler": "4.3.5",
"@angular/core": "4.3.5",
"@angular/forms": "4.3.5",
"@angular/http": "4.3.5",
"@angular/platform-browser": "4.3.5",
"@angular/platform-browser-dynamic": "4.3.5",
"@angular/router": "4.3.5",
"core-js": "2.4.1",
"rxjs": "5.4.3",
"zone.js": "0.8.14"
},
"devDependencies": {
"@angular/cli": "1.3.2",
"@angular/compiler-cli": "4.3.5",
"@angular/language-service": "4.3.5",
"@storybook/addon-actions": "3.3.0-alpha.4",
"@storybook/addon-links": "3.3.0-alpha.4",
"@storybook/addon-notes": "3.3.0-alpha.4",
"@storybook/addon-knobs": "3.3.0-alpha.4",
"@storybook/addons": "3.3.0-alpha.4",
"@storybook/angular": "3.3.0-alpha.4",
"@types/jasmine": "2.5.53",
"@types/node": "6.0.87",
"codelyzer": "3.1.2",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "3.2.0",
"karma": "1.4.1",
"karma-chrome-launcher": "2.0.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "0.2.3",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"karma-trx-reporter": "0.2.9",
"protractor": "5.2.0",
"ts-node": "3.2.0",
"tslint": "5.6.0",
"typescript": "2.4.0"
}
component.__annotations__[0]
ãååŸããããšãããšãã«ãšã©ãŒãçºçãã_Addon Knobs_ã³ã³ããŒãã³ãã«ç§»åããåŸããã©ãŠã¶ã³ã³ãœãŒã«ã§ã¯ã©ãã·ã¥ããŸãã
helpers.js:32 Uncaught TypeError: Cannot read property '0' of undefined
at getComponentMetadata (helpers.js:32)
at prepareComponent (helpers.js:140)
at index.js:33
at withKnobs (index.js:48)
at client_api.js:109
at initModule (helpers.ts:87)
at helpers.ts:167
at later (helpers.ts:27)
at ZoneDelegate.invokeTask (zone.js:424)
at Zone.runTask (zone.js:191)
@ToniaDemchukãã¹ãããŠãããŠããããšãã ãã·ã³ã«ã©ã®ããã«èšå®ããŸãããïŒ åçŸãå ±æã§ããŸããïŒ ã©ããããããšãïŒ
ããã¿ããªããããè¿œå ããã®ãããã«ç°¡åã ã£ããã«ãšãŠãè奮ããŠããŸãã ããã€ãã®åé¡ã
package.jsonã«ã"@storybook/addon-notes": "3.3.0-alpha.4",
ãè¿œå ããå¿
èŠããããŸããã
ããŒã«ã«ã®typescriptãã¹ãå°éããæ¹æ³ã¯ãããŸããïŒ ãããã¯tsconfigã§å®çŸ©ãããŠããŸãã
ãªããžããªïŒ https ïŒ
Cannot find module 'ngx-color/helpers'.
ãååŸããªãã®ã§ãååŸããŸãã
@shilmanããã«ããäŸhttps://github.com/ToniaDemchuk/storybook/tree/angular-4.3.5-sample
ã»ããã¢ããã³ãã³ãïŒ
npm i
npm i -g @storybook/cli
npm run storybook
ãã©ãŠã¶ã§localhost:9009
ãéããã¡ãã¥ãŒã®[ã¢ããªã³ãã]> [ã·ã³ãã«]ã«ç§»åããŸã
ããã¯ããŸããããŸããïŒ
ããã¯ããŸããã§ããïŒ
ã³ã³ãœãŒã«ã®ãšã©ãŒïŒ
@neo ãç§ã¯åçŸããããšããŸããããç§ã«ãšã£ãŠã¯ãã¹ãŠãããŸãæ©èœããŠããŸãã ããå€ãã®ã³ã³ããã¹ããå ±æã§ããŸããïŒ å€åããªãã¯ã¬ããæã£ãŠããŸããïŒ
@ shilman ã @ alterx ãangular v4.3.5ïŒ @ToniaDemchuk ïŒã®åé¡ã«é¢ããŠãç§ã¯ãã®åé¡ã調æ»ããŸããïŒAngularã«ããŸã詳ãããªãã®ã§ã...ïŒã³ãŒãããããŸããã³ã³ããŒãã³ããªããžã§ã¯ãã«annotations
é
åããããšããäºå®ã ãã®é
åã¯ãæ°ããããŒãžã§ã³ã®angular/core
ããã±ãŒãžã«ãã£ãŠèšå®ãããŸãã ãã ãã以åã®ããŒãžã§ã³ïŒãã®å Žåã¯v4.3.5ïŒã§ã¯ã reflect-metadata
ããã±ãŒãžã䜿çšããŠããŸããïŒãããåé€ãããå·®åã§ãïŒã ã©ããããããã®ãããããããŸããã
ããããã®å€æŽã¯ã¡ã¿ããŒã¿ã®ååŸæ¹æ³ã«ééããªã圱é¿ãåãŒããŸãã æå¿
æãããã°èª¿ã¹ãŠã¿ãŠãã ããã ãããã次ã®ãã€ã
é±é
åã2017幎12æ9æ¥ã«ã¯ã11ïŒ41 AMã€ãŽãŒã«ã®[email protected]ã¯æžããŸããïŒ
@shilman https://github.com/shilmanã@ alterx
https://github.com/alterxãAngular v4.3.5ã®åé¡ã«ã€ããŠïŒ
@ToniaDemchuk https://github.com/toniademchuk ïŒãç§ã¯èª¿æ»ããŸãã
åé¡ïŒç§ã¯è§åºŠã«ããŸã詳ãããªãã®ã§...ïŒããã¢ããªã³ã§ã¯ã
ã³ã³ããŒãã³ããªããžã§ã¯ããæã£ãŠãããšããäºå®ã«äŸåããã³ãŒãããããŸã
ãã®äžã«æ³šéé åã ãã®é åã¯ãAngular / Coreããã±ãŒãžã«ãã£ãŠèšå®ãããŸãã
æ°ããããŒãžã§ã³ã ãããã以åã®ããŒãžã§ã³ïŒãã®å Žåã¯v4.3.5ïŒã§ã¯ã
Reflect-metadataããã±ãŒãžïŒããã«diffããããŸã
https://github.com/angular/angular/commit/cac130eff9b9cb608f2308ae40c42c9cd1850c4d#diff-635fe23be5795132e3385c8f4899dc3aR58
åé€ãããå ŽæïŒã ã©ããããããã®ãããããããŸãããâ
ããªããèšåãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/storybooks/storybook/issues/269#issuecomment-350492916 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/ABhRmCjzdKQq2NNVYU7UTc-NVmvd8a9Tks5s-sZEgaJpZM4I70nl
ã
@aitboudad ãã«ã¹ã¿ã ã¢ãžã¥ãŒã«ã¡ã¿ããŒã¿ããµããŒãããããã®PRã§ãã
ãããŸã§ããã€ããšãµãŒãã¹ã®äŸãè¿œå ããŸããã ãã£ã¬ã¯ãã£ããã¹ããŒããªã©ããã¹ãããå¿
èŠããããŸãããããããæ©èœããã¯ãã§ãã
ã©ãèããŠãããæããŠãã ãã
@ToniaDemchuk ãæ°ããå€æŽãããäžåºŠç¢ºèªããŠ
@alterx @ igor -dv @ ralzinovããã®Angularã®å€æŽã®æãå«ã3.3.0-alpha.6ããªãªãŒã¹ããŸãã
https://github.com/storybooks/storybook/releases/tag/v3.3.0-alpha.6
é¢é£ããAngularã®å€æŽã¯æ¬¡ã®ãšããã§ãã
ãããžã§ã¯ãã§ãã®ããŒãžã§ã³ã«ã¢ããã°ã¬ãŒãããŠã¿ãŠãã ãããåé¡ãçºçããå Žåã¯ãç¥ãããã ããã ãããæåŸã®RCãªãªãŒã¹ã«ãªãããšãé¡ã£ãŠããŸããææ¥ãŸã§ã«é©åãª3.3ãªãªãŒã¹ãè¡ãããšãã§ããŸãã
@alterxã¯ãŸãã«ç§ãæ¢ããŠãããã®ã§ããããããšãïŒ
ã³ã³ããŒãã³ãã®ä»£ããã«ãã³ãã¬ãŒãã³ã³ãã³ããæäŸã§ããã°äŸ¿å©ã§ãã
storiesOf('Welcome', module).add('to Storybook', () => ({
moduleMetadata: { imports: [FormModule] },
template: '<dynamic-forms [form]="form"></dynamic-forms>',
props: {
form: [{ key: name }]
},
}));
@shilman for 3.3.0-alpha.6
ã¯ç§ã«ã¯è¯ãããã§ãããç§ãæ°ä»ããå¯äžã®åé¡ã¯ãã¢ããªã³ã@storybook/angular
ããã«ããã±ãŒãžã«å«ãŸããŠããªãããšã§ãã
yarn add @storybook/addon-actions<strong i="14">@alpha</strong> @storybook/addon-links<strong i="15">@alpha</strong> @storybook/addon-notes<strong i="16">@alpha</strong>
@ igor-dvããåçããããšãããããŸãã ä»ã§ã¯æ£åžžã«åäœããŠããŸãã
@shilman ãããã€ãã®å€æŽãangular-cliã®äŸãå£ããŸãããçŸåšãNameComponentãšServiceComponentã¯å ¥åã®ããã«ã³ã³ãã€ã«ãããŠããŸããã
ERROR in ./src/stories/index.ts
(200,19): error TS2345: Argument of type '() => { component: typeof NameComponent; props: { field: string; }; moduleMetadata: { imports: an...' is not assignable to parameter of type 'IGetStory'.
Type '{ component: typeof NameComponent; props: { field: string; }; moduleMetadata: { imports: any[]; s...' is not assignable to type '{ props?: { [p: string]: any; }; moduleMetadata?: { [p: string]: NgModuleMetadata; }; component: ...'.
Types of property 'moduleMetadata' are incompatible.
Type '{ imports: any[]; schemas: any[]; declarations: (typeof CustomPipePipe)[]; providers: any[]; }' is not assignable to type '{ [p: string]: NgModuleMetadata; }'.
Property 'imports' is incompatible with index signature.
Type 'any[]' is not assignable to type 'NgModuleMetadata'.
IGetStory
ã®moduleMetadata?: { [p: string]: NgModuleMetadata; }
ã¯moduleMetadata?: NgModuleMetadata
ã«ãªã£ãŠãããšæããŸãã äŸã®ã¢ãžã¥ãŒã«ã¡ã¿ããŒã¿ãany
ãã£ã¹ãããåŸããã¹ãŠãæåŸ
ã©ããã«æ©èœããŸãã
ãŸããäžèšã®@neoã®åé¡ãšåæ§ã«ãAngularçšã®scssããŒããŒã§ããã€ãã®åé¡ã«çŽé¢ããŸããã
次ã®webpackèšå®ã«ãŒã«ã§åé¡ã解決ããŸããã
storybookBaseConfig.module.rules.push({
test: /\.scss$/,
loaders: ["to-string-loader", "css-loader", "sass-loader"],
include: path.resolve(__dirname, '../')
});
è§åºŠãstyle-loader
æ©èœããªãããã§ã代ããã«to-string-loader
ã䜿çšããå¿
èŠããããŸãã
ããã¥ã¡ã³ããïŒãŸãã¯ïŒscssã¹ã¿ã€ã«ã·ãŒãã§ã³ã³ããŒãã³ãã䜿çšããæ¹æ³ã®äŸãæäŸãããšããã§ãããã
@ToniaDemchukã¯ãã moduleMetadata?: { [p: string]: NgModuleMetadata; }
åé¡ãçºçããŸãã å®éãç§ã¯ãã§ã«ããã§moduleMetadata?: Partial<NgModuleMetadata>;
ãããä¿®æ£ããŸãã
ç§ã¯ã@ralzinovã®å€æŽã«å
Ž3.3.0-rc.0
NPMã¿ã°ã®äžã«ããrc
ã®ä»£ããã«alpha
ã
@ToniaDemchukè©ŠããŠã¿ãŠãåé¡ã解決ãããã©ãããç¥ãããã ããã
ç§ãã¡ãããã解決ããã®ãå©ããããã«ããªãã®å¿èãšåªåã«æè¬ããŸãïŒ
@ralzinovã®å€æŽã䌎ãscssããŒããŒãšAngularStorybookv3.3.3ã§ãŸã ãšã©ãŒããããŸãïŒ
node_modules / @ storybook /ïŒgrep -r "moduleMetadataïŒïŒéšåç
ãã
angular/index.d.ts: moduleMetadata?: Partial<NgModuleMetadata>;
npm run storybook
https://gist.github.com/karlos1337/18e4538b37128818ec3e4b507b3b3a3c
ããããšãã
@ karlos1337 ããã®åé¡ãèŠãŠãã ãã-ïŒ2616ã
3.3ã§ãªãªãŒã¹ïŒ ð
ãã®å·ãç· ãããããAngularã®ã¹ããŒãªãŒããã¯ã§åé¡ãçºçããå Žåã¯ãå¥ã®å·ãæåºããŠãã ããã ããããšãïŒ
æãåèã«ãªãã³ã¡ã³ã
çŸåšããŒããããã«ãããŸãïŒ
https://github.com/storybooks/storybook/blob/master/ROADMAP.md#angular