Angular 2 ์ง์์ด ๋ก๋๋งต์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ๊ทธ๊ฒ์ ๋ํด ๋งค์ฐ ๋ง์กฑํฉ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ทธ ๋ชฉ์ ์ ๋ง๊ฒ ์กฐ์ ํ๋ ค๋ ๊ด๋ จ ์๋๋ฅผ ๊ณต์ ํ๊ณ ์ถ์์ง๋ง ์์ง ์ฌ๊ธฐ์์ ๊ด๋ จ ์ค๋ ๋๋ฅผ ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํ๋๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์์ง PoC๋ฅผ ํตํฉํ์ง๋ ๋ชปํ์ง๋ง ์ฌ๊ธฐ ์์ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ Angular ๋นํธ๊ฐ ์๊ฐ์์ฃผ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด ์ ์ฅ์์ ์ค๋๋ ๋ฒ์ ๋ ํฌํฌํ๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ๊ฐ๋
์ ์ฌ์ ํ โโ์ ์ฉ๋์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํต์ฌ UI๋ฅผ ๋ณ๋์ ์ฑ์ผ๋ก ๋ง๋ค์์ต๋๋ค. NG2์ ์ง์ ์ฌ์ฉํ ๊ณํ์ ๋๋ค. ์ฐธ์กฐ : https://github.com/kadirahq/storybook-ui
๋ฉ์๋. ๊ทธ๊ฒ์ ๊ธฐ๋ํฉ๋๋ค! :)
์ด๋ด, @arunoda , ๊ทธ๋์ ์ด๊ฒ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ ๋ฌด์์
๋๊น?
ng2 ์ ์ฉ ์คํ ๋ฆฌ ๋ถ UI๋ฅผ ๋ง๋ค๊ณ ์ถ์ต๋๊น? ์ฌ๋ฌ๋ถ์ด ๋ฌ์ฑํ๊ณ ์ํ๋ ๊ฒ์ ๋ํ ๋์ ์์ค์ ์ค๋ช
์ ์ป๊ณ ์ ๊ฐ ๋์ธ ์ ์๋์ง ์์๋ณด๊ณ ์ถ์ต๋๋ค.
Angular 2 API๋ RC5 ์ถ์์ ํจ๊ป ์์ ๋์์ต๋๋ค. ์ง๊ธ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์ ์์ํ๊ธฐ์ ์ข์ ์๊ฐ์ ๋๋ค. cc : @arunoda @mnmtanish
@arunoda : ๋ก๋๋งต์์ ์ด๊ฒ์ด ๋ฎ๋ค๊ณ ์๊ฐํ๋ ๊ฒฝํฅ์ด ์์ง๋ง Angular์ ๊ฒฝ์ฐ์ด ๋ถํ ์์ ์์ด๋์ด๋ storybook-ui
์ React๋ฅผ ํ์ฉํ๋ ์ด๋ก ์ ng2-storybook
์ธํฐํ์ด์ค๋ Angular ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํฉ๋๊น? ๊ทธ๋ฌ์ด?
@ tycho01 ๋น์ ์ด ๋ง์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฐ์ ์์๊ฐ ๋ค์ ๋ฎ์ต๋๋ค.
Storybook-ui๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋์ ๋๋ถ๋ถ์ ์ ๋์จ์ ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋๋ ๋๊ตฐ๊ฐ๊ฐ ์์
์ ์์ํ ์ ์๋๋ก ๋์์ ์ฐพ๊ณ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด Slack์์ ์ ๋ฅผ ํํ์ธ์. ๋ ์ด์ผ๊ธฐํฉ์๋ค.
@ tycho01 , @arunoda ์ฌ๋ฌ๋ถ์ด์ด ์์ ์ ์์ํ๋ฉด ์๋ ค์ฃผ์ธ์.
@alterx : ๋ด๊ฐ ์ป์ ํฌ์ธํฐ : storybook-react
๋ storybook-ui
์ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค (iframe ๋ด์์ ์คํ ๋จ); ๋ค์ ๋จ๊ณ๋ Angular ๋ฒ์ ์ผ๋ก ๋์ฒด ๋ ์ ์๋์ง ์คํํ๋ ๊ฒ์
๋๋ค. ๋ง์ง๋ง ์๋ ์ดํ๋ก ์์ํ์ง ์์์ต๋๋ค.
์ด๊ฒ์ ํ์ธํ์ญ์์ค -https:
@ tycho01 , ๋๋ ์์ค๋ฅผ ํ์ธํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฏธํ ๋ iframe (https://github.com/storybooks/react-storybook/blob/master/src/client/manager/preview.js) ์ธ ์์ ํ ๋ณ๊ฐ์ ๋ฐ์ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํด๋น ๋ฏธ๋ฆฌ๋ณด๊ธฐ iframe์์ ng2 ์คํ ๋ฆฌ๋ฅผ๋ก๋ ํ ์ ์์ด์ผํฉ๋๋ค.
react-storybook
๊ธฐ๋ณธ์ ์ผ๋ก Provider
์ ๊ณตํ๋ storybook-ui
ํ๊ณ ์์ ์ธ๊ธ ํ 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 % ๋ง์ต๋๋ค.
๋ํ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ๋ ค๋ฉด React Storybook๊ณผ ์ ์ฌํ API๋ฅผ ๋
ธ์ถํด์ผํฉ๋๋ค.
angular-storybook
๋๋ ์ด์ ์ ์ฌํ ๊ณณ์์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
@arunoda ๋น์ ์ด ์ธ๊ธ ํ ์ต๊ทค๋ฌ ์คํ ๋ฆฌ ๋ถ์ ๋ํ URL์ด
@bcowgill afaik ์ด๊ฒ์ ์์์ ์ธ๊ธ ํ @amcdnl์ ์ ์ธํ๊ณ ๋ ์์ง ์กด์ฌํ์ง ์์ต๋๋ค.
์ง๊ธ๋ ์์ต๋๋ค-http: //www.angularplayground.it/
ํ์ฌ ๋ก๋๋งต์ ์์ต๋๋ค.
https://github.com/storybooks/storybook/blob/master/ROADMAP.md#angular
๊ทธ๋์ Vue ์ฉ ์คํ ๋ฆฌ ๋ถ์ด ๊ณง ์ถ์ ๋ ์์ ์ ๋๋ค ๐
์ด๊ฒ์ NG2 ์ฉ ๋ฒ์ ์ด ์ด๋ป๊ฒ ์ํ ๋ ์ ์๋์ง์ ๋ํ ๊ฝค ์ข์ ์๋ฅผ ์ถ๊ฐํฉ๋๋ค.
์ด ์ค๋ ๋๋ฅผ๋ณด๊ณ ํจ๊ป ์ผํ๊ณ ์คํํ ์ฉ๊ฐํ ์ํผ์ด ์์ต๋๊น?
์ ๊ฐ ์ดํด๋ณผ ์ ์์ต๋๋ค. @ndelangen์ด๋ผ๋ ํธ๋ฆฌํ ์ ์ฅ์ URL์ด ์์ต๋๊น?
๋น์ ์ ๊ทธ๊ฒ์๋ณด๊ณ ์์ต๋๋ค ๐
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 ํน์ ์ฝ๋๊ฐ์๋ ๊ณณ์ด๋ฉฐ ์๋ฒ ๋ถ๋ถ์๋ ๋ค๋ฅธ ์นํฉ ๊ตฌ์ฑ์ด ์์ต๋๋ค.
์ฒ์์๋ ๋ง์ ์ฝ๋๋ฅผ ๋ณต์ ํด๋ ๊ด์ฐฎ์ต๋๋ค! ๋์ค์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ๋ง๋ก ํํ ๊ฒ๊ณผ ๊ทธ๋ ์ง ์์ ๊ฒ์ ์ฐพ์ ํ์.
์์ํ๊ธฐ ์ํด
@shilman ์ ์ฐ๋ฆฌ์ ๋ฆด๋ฆฌ์ค ๋ง์คํฐ ์ ฐํ์ ๋๋ค ๐จโ๐ณ
slack์์ ์ฐ๋ฆฌ์ ํจ๊ป ์ข ๋ ๋น ๋ฅธ ์ฑํ ๊ฒฝํ์ ์ป์ผ๋ ค๋ฉด github ๐ฌ
์๋ฒฝํฉ๋๋ค, @ndelangen!
์ฝ๋๋ฅผ ์ดํด๋ณด๊ณ Slack ์ฑ๋์ ๊ฐ์
ํ๊ฒ ์ต๋๋ค. : D
@alterx ์ง๊ธ ์์ ์ค์ ๋๊น? ์ง๊ธ vue.js ๋ฒ์ ์ ๋ณต์ ํ๊ณ ์์ต๋๋ค.
@ Jordan-Hall, ๊ธฐ๋ณธ ์ฑ์ด ์๋ํ๋ 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 @alterx ์ต๊ทค๋ฌ ์ฑ์ผ๋ก ์ํ ๋ฆด๋ฆฌ์ค๊ฐ ๋ง๋ค์ด ์ก๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค.
์์ง ๊ทธ๋ ์ง ์์ ๊ฒ ๊ฐ์ต๋๊น?
1์ ์ผ๋ง๋ ๋นจ๋ฆฌ ํ ์ โโ์์ต๋๊น? @tomatosource ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ฅผ ์ํด ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ๊ธฐ๊บผ์ด ๐
@shilman ์ด Angular slack ์ฑ๋์์ "๋ค์ ๋ฉฐ์น ์์"๋ฆด๋ฆฌ์คํ๊ณ ์ถ๋ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์์ง ๋ฆด๋ฆฌ์ค๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. :)
์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? :-)
์ค์ ๋ก ์ =) https://github.com/storybooks/storybook/releases/tag/v3.3.0-alpha.3
@Hypnosphi ์ค์ ๋ก ์ด๊ฒ์ ์ด๋ป๊ฒ ์ค์นํฉ๋๊น? ์ง์๋์ง ์๋ ํ๋ก์ ํธ ์ ํ์ ๋๋ค. (์ฝ๋ : UNDETECTED)
@aaronksaunders CLI๋ฅผ ๋๋ฒ๊ทธํ๋ ๋ฐ ๋์์ด๋๋๋ก ๊ณต์ ํ ์์๋ ์ ์ฅ์๊ฐ ์์ต๋๊น? ๋ํ ์๋์ผ๋ก ์ํํ๋ ค๋ฉด ์ ์ฒด ์ค์ ์ด ํฌํจ ๋ ์์ ์ฑ์ด ์์ต๋๋ค. https://github.com/storybooks/storybook/tree/release/3.3/examples/angular-cli
@alterx @tomatosource ์ถ์๊ฐ ์ง์ฐ๋์ด ์ฃ์กํฉ๋๋ค. ์ง๊ธ ์ถ์๋์์ผ๋ฉฐ ํ ์คํธ์ ๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌ ํ๊ฒ ์ต๋๋ค !
์ด๋ค ๋ฒ์ ์ ๊ฐ๋๋ฅผ ์ง์ํฉ๋๊น?
@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 @ ์์ ๋์ @ tycho01 @ priley86
Angular2 + ์ง์์ @alterx์ ์์ฒญ๋ ๋
ธ๋ ฅ ๋๋ถ์ ์ํ ๋ฒ์ ์
๋๋ค (์ ํํ 3.3.0-alpha.4
). ์ถ์ ์ค๋น๊ฐ ๋ ์ ์๋๋ก ํ
์คํธ๋ฅผ ๋์์ฃผ์ธ์!
๋จ ๋ช ๋ถ ๋ง์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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 ์ฑ๋ ์์ ์ค์๊ฐ ๋์์๋ฐ์ ์ ์์ต๋๋ค.
๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@shilman์ด yarn getstorybook
๋ฅผ ์คํํ๋ฉด ๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
(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
์์๋ ๋ชจ๋ ํ์ผ์ ํธ๋์ค ํ์ผํ๋ ๊ฒ์ ๋ฌด์ํ๋ ๋ฐ๋ฒจ์ ๊ดํ ๊ฒ์
๋๋ค.
@shilman ๋ด๊ฐ ๊ฐ์ง ๋ ๋ฒ์งธ ๋ฌธ์ ๋
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
์์๋ ๋ชจ๋ ํ์ผ์ ํธ๋์ค ํ์ผ์ ๋ฌด์ํ๋ ๋ฐ๋ฒจ์ ๊ดํ ๊ฒ์ ๋๋ค.
์ค, ์๊ฒ ์ต๋๋ค. ์ด์ ์ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
@aitboudad ๋๋ฒ๊น @Hypnosphi ๊ฐ CLI ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ฐฉ๊ธ ๋ฆด๋ฆฌ์คํ์ต๋๋ค. ๊ณง ๊ฐ๋ ์์ ์ ์๋ ํ ๊ฒ์ ๋๋ค!
https://github.com/storybooks/storybook/releases/tag/v3.3.0-alpha.4
@aitboudad , ์ฐ๋ฆฌ๋ ๋๋ฝ ๋ ๊ธฐ๋ฅ์ ์๊ณ ์์ผ๋ฉฐ์ด๋ฅผ ๋ณด์ํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ฌ์ฉ์ ์ง์ NgModules์ ๋ฌธ์ ๋ ํ์ฌ ๊ตฌํ์์ ๋ชจ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๊ตฌ์ถํ๊ณ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ณต๊ธ์์ ์คํค๋ง๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ๋ก์ปฌ์ ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ด ์์ง๋ง ๋ชจ๋์ด ์ ์ฌ์ ์ผ๋ก ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ฅผ ํฌํจ ํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์ ์ง์ ๋ชจ๋์ ์ ๋ฌํ ์๋ ์์ต๋๋ค.
์ ํํ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น? ๋ญ๊ฐ ์์๋ผ ์ ์์์ง๋ ๋ชฐ๋ผ์.
๋ํ transpile ๋ง ์ฌ์ฉํ๋ฉด ์ ํ ๊ฒ์ฌ์์ด ๋จ๊ฒ๋ฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ํ๊ธฐ ์ ์ ์ด๊ฒ์ ์กฐ์ฌํด์ผํฉ๋๋ค.
@alterx ์ ํํ ์ฌ์ฉ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น?
๋ด ๊ตฌ์ฑ ์์์ ์ฌ๋ฃ ๋๋ ์๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ธ๋ถ ๋ชจ๋์ด ํ์ํ ๊ฒฝ์ฐ ํ์ฌ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ด๋ป๊ฒ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๊น?
์ด ๊ฒฝ์ฐ ๊ณต๊ธ์, ๊ฐ์ ธ ์ค๊ธฐ ๋ฐ ์คํค๋ง (ํ์ํ ๊ฒฝ์ฐ idk, ์ฌ์ฉ์ ์ง์ ์์)๋ก ์ถฉ๋ถํฉ๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ชจ๋์ ํ์ฉํ๋ ๋ฌธ์ ๋ ์ฌ์ฉ์๊ฐ ์ ์ถํ ์์๋ ๊ตฌ์ฑ ์์์ ์์ ์ ์ด ํ ์์๊ณ ์ ์ฌ์ ์ผ๋ก ์์ ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. Storybook์ ๋ถ๋ฆฌ ๋ ๋จ์๋ก ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋ฐํ๊ณ ํ ์คํธํ๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ React์ Vue์์ ์ฝ๊ฐ ๋ค๋ฅด๊ฒ ์๋ํ์ง๋ง ๊ฐ๋์ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง ๊ฐ์ ์ํ๊ณ ๋ฒ์๋ฅผ ์ ํํด์ผํฉ๋๋ค.
์ ๋ ๊ฐ์ ธ ์ค๊ธฐ์ ์ ์ธ์ ํตํด ๊ณต๊ธ์์ ์คํค๋ง๋ฅผ ์ ๋ฌํ ์์๋ ์์ ์ํ๊ณ ์์ต๋๋ค. ์ข ๋ ๋ณต์กํฉ๋๋ค. ์ด๋ฐ ์ข ๋ฅ์ ํผ๋๋ฐฑ์ ์๋ฒฝํฉ๋๋ค. ์ฐ๋ฆฌ๋ ํ ์คํธ ํ ์์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ป๊ณ ์ฌ๋๋ค์๊ฒ ํ์ํ ๊ฒ์๋ณด๊ณ ์ถ์์ต๋๋ค.
@aitboudad ์๋ก ๋ง๋ @angular/cli
์ฑ๊ณผ getstorybook
๋ฌธ์ ๋ฅผ ๋ณต์ ํ๋ ค๊ณ ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค. ์ค์ ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? ๊ฐ๋ ๋ฒ์ ? 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",
์ ์ถ๊ฐํด์ผํ์ต๋๋ค.
๋ด ๋ก์ปฌ ํ์ดํ ์คํฌ๋ฆฝํธ ๊ฒฝ๋ก๋ฅผ ์กด์คํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? tsconfig์ ์ ์๋์ด ์์ต๋๋ค.
์ ์ฅ์ : https://github.com/scttcper/ngx-color
๋๋ ๊ทธ๋ค์ ์ ํํ์ง ์๊ธฐ ๋๋ฌธ์ 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
์ ์ด๊ณ ๋ฉ๋ด์์ _Addon Knobs> Simple_๋ก ์ด๋ํฉ๋๋ค.
์ด๊ฒ์ ์๋ํ์ต๋๋ค.
์ด๊ฒ์ํ์ง ์์๋ค :
์ฝ์ ์ค๋ฅ :
@neo , ์ฌํํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค. ๋ ๋ง์ ๋งฅ๋ฝ์ ๊ณต์ ํ ์ ์์ต๋๊น? ์๋ง๋ ๋น์ ์ repo๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๊น?
@shilman , @alterx , angular v4.3.5 ( @ToniaDemchuk )์ ๋ฌธ์ ์ ๊ด๋ จํ์ฌ ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ์ต๋๋ค (๊ฐ๊ฐ์ ์ต์ํ์ง ์๊ธฐ ๋๋ฌธ์ ...) ๋
ธ๋ธ ์ ๋์จ์ ์์กดํ๋ ์ฝ๋ ๊ฐ ์์ต๋๋ค. ๊ตฌ์ฑ ์์ ๊ฐ์ฒด์๋ annotations
๋ฐฐ์ด์ด ์์ต๋๋ค. ์ด ๋ฐฐ์ด์ ์ ๋ฒ์ ์ angular/core
ํจํค์ง์ ์ํด ์ค์ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ฒ์ (์ด ๊ฒฝ์ฐ v4.3.5)์์๋ reflect-metadata
ํจํค์ง๋ฅผ ์ฌ์ฉํ์ต๋๋ค (์ฌ๊ธฐ์ ์ ๊ฑฐ ๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค). ๋๋ ๊ทธ๊ฒ์ผ๋ก ๋ฌด์์ ํด์ผํ ์ง ์ ๋ง๋ก ๋ชจ๋ฅธ๋ค.
๋ค,์ด ๋ณํ๋ ์ฐ๋ฆฌ๊ฐ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์ ํ์คํ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์์ง
์ฌ์ ์๊ฐ์ด ์๊ธฐ๋ฉด ์ดํด๋ณด์ธ์. ์๋ง ๋ค์์ ์ธ์ ๊ฐ
์ฃผ
2017 ๋ 12 ์ 9 ์ผ ํ ์์ผ ์ค์ 11:41 Igor [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์ด ์์ต๋๋ค.
์ง๊ธ๊น์ง ํ์ดํ ๋ฐ ์๋น์ค์ ๋ํ ์์ ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. Directives, Schemas ๋ฑ์ ํ
์คํธํด์ผํ๋๋ฐ ๊ทธ๊ฒ๋ค๋ ์๋ ํด์ผ ํฉ๋๋ค.
๋น์ ์ด ๋ฌด์จ ์๊ฐ์ํ๋์ง ์ ๊ฒ ์๋ ค์ฃผ์ธ์
@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'.
๋๋ ๊ฐ์ ๊ทธ moduleMetadata?: { [p: string]: NgModuleMetadata; }
์์ IGetStory
๋กํด์ผ moduleMetadata?: NgModuleMetadata
. ์์ ์ ๋ชจ๋ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ any
์บ์คํ
ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํฉ๋๋ค.
๋ํ ์์์ ์ค๋ช
ํ @neo ๋ฌธ์ ์ ์ ์ฌํ ๊ฐ ๋์ฉ scss ๋ก๋์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค.
๋ค์ ์นํฉ ๊ตฌ์ฑ ๊ท์น์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
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
๊ณ ๊ถ ๋ฐ๋ฌผ์ ํ๊ทธ ์๋ ์ธ rc
๋์ alpha
.
@ToniaDemchuk ์๋ํด๋ณด๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ฉด ์๋ ค์ฃผ์ญ์์ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ์ธ๋ด์ฌ๊ณผ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์์ง SCS๋ค ๋ก๋์ @ralzinov ๋ณํ์ ๊ฐ ์ด์ผ๊ธฐ ์ฑ v3.3.3์ ์ค๋ฅ๊ฐ ์์ต๋๋ค
node_modules / @ storybook / : grep -r "moduleMetadata ?: ๋ถ๋ถ
"
angular/index.d.ts: moduleMetadata?: Partial<NgModuleMetadata>;
npm ์คํ ์คํ ๋ฆฌ ๋ถ
https://gist.github.com/karlos1337/18e4538b37128818ec3e4b507b3b3a3c
๊ฐ์ฌ.
@ karlos1337 ,์ด ๋ฌธ์ ๋ฅผ๋ณด์ธ์-# 2616.
3.3์์ ์ถ์๋์์ต๋๋ค! ๐
์ด๋ฒ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ์ต๊ทค๋ฌ ์ฉ ๋ํ์ฑ ์ ๋ฌธ์ ๊ฐ ์์ผ์๋ฉด ๋ณ๋์ ํธ๋ฅผ ์ ์ถํด์ฃผ์ธ์. ๊ฐ์ฌ!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
ํ์ฌ ๋ก๋๋งต์ ์์ต๋๋ค.
https://github.com/storybooks/storybook/blob/master/ROADMAP.md#angular