Storybook: Storybook 5.0.0 ๊ฐ์ • ํ…Œ๋งˆ ๋ฐ React ๋กœ๋” ๋ฒ„๊ทธ

์— ๋งŒ๋“  2019๋…„ 03์›” 02์ผ  ยท  42์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: storybookjs/storybook

๋ฒ„๊ทธ ์„ค๋ช…
Storybook 5.0.0-rc.8์„ ์‹œ์ž‘ํ•  ๋•Œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

info @storybook/react v5.0.0-rc.8
info 
info => Loading static files from: /Users/afrankel/Code/makana-platform/nani/public .
info => Loading presets
WARN   Failed to load preset: "/Users/afrankel/Code/makana-platform/nani/node_modules/@storybook/core/dist/server/manager/manager-preset.js"
ERR! Error: Cannot find module 'emotion-theming/package.json'
ERR!     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
ERR!     at Function.resolve (internal/modules/cjs/helpers.js:30:19)
ERR!     at Object.<anonymous> (/Users/afrankel/Code/makana-platform/nani/node_modules/@storybook/ui/paths.js:16:38)
ERR!     at Module._compile (internal/modules/cjs/loader.js:702:30)

์žฌํ˜„ํ•˜๋ ค๋ฉด

  1. ์‹ค
  2. ์›์‚ฌ ๋™ํ™”์ฑ…

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™
๋ฌธ์ œ์—†์ด ์‹œ์ž‘

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ
yarn add emotion-theming@^10.0.7 -D ์„ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๋ฉด์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

compatibility with other tools has workaround question / support yarn / npm

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@storybook/theming ๋ฅผ ๋ช…์‹œ ์  ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  42 ๋Œ“๊ธ€

@ afrankel-sfdo node_modules ๋ฐ yarn.lock ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ๋งŽ์€ ์ด์ƒํ•œ ์ ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์˜ˆ : https://github.com/storybooks/frontpage/pull/28#issuecomment -468666553

@shilman ์‹ฌ์ง€์–ด info @storybook/react v5.0.0-rc.10 :

rm yarn.lock; rm -Rf node_modules/; yarn; yarn storybook

Error: Cannot find module 'emotion-theming/package.json'

์ •๋ง ๊ธฐ๊ดดํ•ฉ๋‹ˆ๋‹ค. ์žฌํ˜„์„ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚ด CRA ํ…Œ์ŠคํŠธ ์•ฑ ๋˜๋Š” ๋‚ด Gatsby ํ…Œ์ŠคํŠธ ์•ฑ์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ

๋‚˜๋Š” @storybook/[email protected] ์™€ ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ : package-lock.json ๋ฐ node_modules ์‚ญ์ œ ์„ธ ๋ฒˆ์งธ ์‹œ๊ฐ„์ด ๋‚˜๋ฅผ ์œ„ํ•ด ํŠธ๋ฆญ์„ํ–ˆ์Šต๋‹ˆ๋‹ค.

Mac OSX์—์„œ ์‹คํ–‰๋˜๋Š” @ storybook / [email protected] ์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ yarn.lock ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์šฐ๋ฆฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

5.0.0 ์—์„œ๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ์ €๋„ ๋‚ฎ๊ฒŒ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค ...

ModuleParseError: Module parse failed: Unexpected token (20:24)
You may need an appropriate loader to handle this file type.
|       console.info('HMR Configured');
|       module.hot.accept('layouts/App', () => {
>         ReactDOM.render(<App />, document.getElementById('root'));
|       });
|     }
    "@storybook/addon-a11y": "5.0.0",
    "@storybook/addon-actions": "5.0.0",
    "@storybook/addon-console": "^1.1.0",
    "@storybook/addon-info": "5.0.0",
    "@storybook/addon-knobs": "5.0.0",
    "@storybook/addon-links": "5.0.0",
    "@storybook/addon-notes": "5.0.0",
    "@storybook/addon-storyshots": "5.0.0",
    "@storybook/addon-viewport": "5.0.0",
    "@storybook/addons": "5.0.0",
    "@storybook/core": "5.0.0",
    "@storybook/react": "5.0.0",

์ƒˆ๋กœ์šด ์Šคํ† ๋ฆฌ ๋ถ ์„ค์น˜๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ์—์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์›์ธ์„ ์ถ”์ ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

@ afrankel-sfdo ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํ˜„์žฌ ์ด๋ก ์€ @emotion/core ๋ถ€์กฑ์œผ๋กœ ์ธํ•ด ModuleParseError ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” npm i @emotion/core @emotion/styled ๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ƒํ•˜๊ฒŒ๋„ ๊ทธ ๋‘ ๊ฐ€์ง€ deps๊ฐ€ package-lock.json ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ. ๋‚˜๋Š” ๊ทธ๋“ค์„ package.json ์—์„œ ์ œ๊ฑฐํ•˜๊ณ  package-lock.json ๋ฅผ ๊ทธ๋“ค์—๊ฒŒ ๋งก ๊ฒผ๊ณ , ์‹ค์ œ๋กœ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด ๋‚ฌ๋Š”์ง€ ์„ค๋ช…ํ•˜์ง€๋Š” ๋ชปํ•˜์ง€๋งŒ ๋‹ค์‹œ ์‚ฌ์—…์„ ์‹œ์ž‘ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—…๋ฐ์ดํŠธ : ์œ„์˜ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ ํ•œ ํ›„ npm ls @emotion/core ์‹คํ–‰ํ•  ๋•Œ์ด๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

[email protected] /Users/jamesdigioia/Code/compiq/web
โ”œโ”€โ”€ @emotion/[email protected]  extraneous
โ””โ”€โ”ฌ @storybook/[email protected]
  โ””โ”€โ”ฌ @storybook/[email protected]
    โ””โ”€โ”€ @emotion/[email protected]

npm ERR! extraneous: @emotion/[email protected] /Users/jamesdigioia/Code/compiq/web/node_modules/@emotion/core

@emotion/core ๋Š” ๋นŒ๋“œ๊ฐ€ ์˜ˆ์ƒํ•˜๋Š” ๋ฃจํŠธ์— ๊ฒŒ์–‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋” ์ด์ƒ ๋‚ด package.json ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค). require.resolve ๋Š” @storybook/ui/paths.js ์—์„œ ํ˜ธ์ถœ๋˜์ง€๋งŒ @storybook/theming ์•„๋ž˜์—๋งŒ ์„ค์น˜๋˜๋ฏ€๋กœ ํ•ด๋‹น ํด๋”์˜ node_modules ์— ์ค‘์ฒฉ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, require.resolve @storybook/ui ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@storybook/ui ์—์„œ ์ฐพ๊ณ  ์žˆ์œผ๋ฏ€๋กœ @emotion/{core,styled} ๋ฅผ @storybook/ui ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์—…๋ฐ์ดํŠธ : package-lock.json ์„ (๋ฅผ) ์‚ญ์ œํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด npm dedupe ์ด (๊ฐ€) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@ FrAgFo0d yarn.lock ๋ฅผ ์‚ญ์ œํ•ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ํ•ด๋‹น ์†”๋ฃจ์…˜์ด ์ ํ•ฉํ•œ ์ง€ ์•„๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ๋ฐ”๋‹ฅ์— ๋„๋‹ฌ ํ•  ๊ฒƒ์ด์ง€๋งŒ ์ง€๊ธˆ์€ ์‹ค ๋ฒŒ๋ ˆ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค ...

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ yarn.lock์„ ์‚ญ์ œํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

yarn add @emotion/core @emotion/styled ์ฆ‰์‹œ ํ•ด๊ฒฐ

์ •๋ง ์ด์ƒํ•œ ๊ฐ์ • ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๊ธฐ ์ „์— node_modules, yarn.lock์„ ์‚ญ์ œํ•˜๊ณ  yarn cache clean ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„์ด ๋ฌธ์ œ๋Š” ์Šคํ† ๋ฆฌ ๋ถ / ์ฝ”์–ด ๋ฐ ์Šคํ† ๋ฆฌ ๋ถ / ํ…Œ๋งˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ๊ฐ์ • ๋ฒ„์ „๊ณผ ๊ด€๋ จ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฑด ์ •๋ง ์ด์ƒ ํ•ด์š”. ๊ทธ๋ƒฅ ์ง€๋‚˜์น  ์ˆ˜๊ฐ€ ์—†์–ด์š”. ๊ฐ์ • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋นŒ๋“œ๋˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ € ( Cannot read property 'Consumer' of undefined at ThemeProvider )์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์•„๋ฌด ๊ฒƒ๋„ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊นจ๋—ํ•œ CRA ์•ฑ์—์„œ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋‚ด ์‚ฌ์šฉ์ž ์ •์˜ Webpack ์„ค์ •์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. React Native ์›น ๊ตฌ์„ฑ ์š”์†Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์Šคํ† ๋ฆฌ ๋ถ์„ ์„ค์ •ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ํ…Œ์ŠคํŠธ ์ €์žฅ์†Œ : https://github.com/MrLoh/universal-react-storybook

์Šคํ† ๋ฆฌ ๋ถ 4.1.13 ๋‹ค์šด ๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์Šคํ† ๋ฆฌ ๋ถ / ๋ฆฌ ์•กํŠธ์™€ ์Šคํ† ๋ฆฌ ๋ถ / ๋ฆฌ ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œผ์•„ ์•„

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค (ํ•˜์ง€๋งŒ @storybook/vue ).
๊ทธ๋ฆฌ๊ณ  package.json ์˜ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ด์ „ @emotion/* ํŒจํ‚ค์ง€์— ๋‚ด๋ถ€์ ์œผ๋กœ ์ข…์† ๋œ ์ด์ „ @storybook/addons ํŒจํ‚ค์ง€์— ์ข…์† ๋œ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด resolutions ํ•„๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๊ณ  ์ด๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  "resolutions": {
    "my-old-library/@storybook/addons":"^5.0.0"
  }

@ FrAgFo0d yarn.lock ๋ฅผ ์‚ญ์ œํ•ด๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ํ•ด๋‹น ์†”๋ฃจ์…˜์ด ์ ํ•ฉํ•œ ์ง€ ์•„๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ๋ฐ”๋‹ฅ์— ๋„๋‹ฌ ํ•  ๊ฒƒ์ด์ง€๋งŒ ์ง€๊ธˆ์€ ์‹ค ๋ฒŒ๋ ˆ์ฒ˜๋Ÿผ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค ...

๊ทธ๋žฌ ์œผ๋ฉด ์ข‹๊ฒ ์ง€ ๋งŒ ์ด๋ ‡๊ฒŒ ํ•œ ํ›„์—๋Š” ๋‹ค๋ฅธ ํ•ญ๋ชฉ์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์œผ๋กœ ์„ค์น˜๋˜๊ฑฐ๋‚˜ ๋™ํ™”์ฑ… ์ž์ฒด๋กœ ์ธํ•ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

yarn add @emotion/core @emotion/styled ์‹œ๋„ํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. `
๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์˜คํžˆ๋ ค ๋‚ด ํ”„๋กœ์ ํŠธ์— ๋” ๋งŽ์€ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)

@storybook/theming ๋ฅผ ๋ช…์‹œ ์  ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ๊ธˆ Mac OSX์—์„œ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. Windows์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด Mac์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. npm i @emotion/core @emotion/styled ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

[email protected] ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ homburg ์†”๋ฃจ์…˜ ์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

yarn.lock ํŒŒ์ผ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค (๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค). ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค ..

$ rm -rf node_modules
$ yarn cache clean
$ yarn remove @storybook/core @storybook/theming [all other storybook deps]
$ yarn add -D @storybook/core @storybook/theming ....

์ด ๋ฌธ์ œ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

+1์€ ์šฐ๋ฆฌ์—๊ฒŒ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šค๋ ˆ๋“œ์˜ ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์Šคํ† ๋ฆฌ ๋ถ 4๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค
@storybook/react: 5.0.3
MacOs Mojave
ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :

yarn add --dev @emotion/core -W
yarn add --dev emotion-theming -W

v5.0.3์—์„œ v5.0.5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• :
yarn add --dev @storybook/theming

์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ค‘ ์ตœ์‹  ์ •๋ณด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • @storybook/theming
  • @emotion/core
  • @emotion/styled

๋ชจ๋“  ์บ์‹œ ์ง€์šฐ๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ์ด์ „ emotion-theming ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์œผ๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

info => Loading presets
WARN   Failed to load preset: "/Users/areardon/code/react-beautiful-dnd/node_modules/@storybook/core/dist/server/manager/manager-preset.js"
ERR! Error: Cannot find module 'emotion-theming/package.json'

emotion-theming ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ๊ฒƒ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค ..

emotion-theming ์„ค์น˜ํ•˜์—ฌ @alexreardon ์ฒ˜๋Ÿผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค : https://emotion.sh/docs/emotion-theming ์— ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

info @storybook/react v5.0.5
info 
info => Loading presets
WARN   Failed to load preset: "/Users/Felipe/Local_Projects/monorepo/node_modules/@storybook/core/dist/server/manager/manager-preset.js"
ERR! Error: Cannot find module 'emotion-theming/package.json'

ํ•ด๊ฒฐ์ฑ…์€ @ storybook / ui๊ฐ€ ์ฐพ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— @ emotion / {core, styled}๋ฅผ @ storybook / ui์— ๋Œ€ํ•œ ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ…์ด ๋  ๊ฒƒ์ด๋ผ๋Š” @mAAdhaTTah์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์˜์กด์„ฑ์„ ๋Œ์–ด ์˜ฌ๋ฆฌ๊ธธ ๋ฐ”๋ผ๋Š” ๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@ storybook / react v5.0.6์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์ „ ์„ค์ •๋กœ๋“œ ์‹คํŒจ : "/Users/vinkumar2/Documents/Projects/PatternLibs/ReactPatternLib/node_modules/@storybook/core/dist/server/manager/manager-preset.js"
ERR! ์˜ค๋ฅ˜ : '@ emotion / core / package.json'๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

DevDependencies์— @ emotion / core๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด๋˜์—ˆ๊ณ  Storybook์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. @ storybook / react์™€ ํ•จ๊ป˜ ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์ด ๋ˆ„๋ฝ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— PR์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค : # 6435

Egads !! ๋ฐฉ๊ธˆ์ด ๋ฌธ์ œ๋ฅผ ์ฐธ์กฐํ•˜๋Š” PR # 6435๊ฐ€ ํฌํ•จ ๋œ https://github.com/storybooks/storybook/releases/tag/v5.1.0-alpha.23 ์„ ๋ฆด๋ฆฌ์Šคํ–ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”!

์ถœ์‹œ ์ „ ๋ฒ„์ „์ด๋ฏ€๋กœ @next NPM ํƒœ๊ทธ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•  ์ผ์ด ๋” ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ๋‹ค์‹œ์—ฌ์‹ญ์‹œ์˜ค.

์•ŒํŒŒ ๋ฒ„์ „์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. @shilman ์—๊ฒŒ ๊ฐ์‚ฌ

๋ฌธ์ œ๋Š” 5.0.10์—์„œ ์—ฌ์ „ํžˆ ์ง€์†๋ฉ๋‹ˆ๋‹ค (npm ๋กœ๊ทธ์— ์˜ํ•ด alpha.23 ์ดํ›„ ๋ฒ„์ „ ์ž„).

์—๋Ÿฌ ๋ฉ”์‹œ์ง€:

์‚ฌ์ „ ์„ค์ •๋กœ๋“œ ์‹คํŒจ : "/.../node_modules/@storybook/core/dist/server/manager/manager-preset.js"
ERR! ์˜ค๋ฅ˜ : 'emotion-theming / package.json'๋ชจ๋“ˆ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์Šคํƒ ์ถ”์  :

stack: 'Error: Cannot find module \'emotion-theming/package.json\'\n    
at Function.Module._resolveFilename (module.js:536:15)\n    
at Function.resolve (internal/module.js:18:19)\n   
at Object.<anonymous> (/.../node_modules/@storybook/ui/paths.js:16:38)\n    
at Module._compile (module.js:635:30)\n    
at Object.Module._extensions..js (module.js:646:10)\n    
at Module.load (module.js:554:32)\n    
at tryModuleLoad (module.js:497:12)\n    
at Function.Module._load (module.js:489:3)\n    
at Module.require (module.js:579:17)\n    
at require (internal/module.js:11:18)\n    
at Object.<anonymous> (/.../node_modules/@storybook/core/dist/server/manager/manager-webpack.config.js:18:37)\n    
at Module._compile (module.js:635:30)\n    
at Object.Module._extensions..js (module.js:646:10)\n    
at Module.load (module.js:554:32)\n    
at tryModuleLoad (module.js:497:12)\n    
at Function.Module._load (module.js:489:3)',

@Stralos ์ด ์ˆ˜์ • ์‚ฌํ•ญ์€ 5.1.X ๋ฆด๋ฆฌ์Šค ๋ธŒ๋žœ์น˜์— ์žˆ์œผ๋ฉฐ ํ˜„์žฌ ์•ŒํŒŒ ๋ฒ„์ „ ( 5.1.0-alpha.33 )์ž…๋‹ˆ๋‹ค.

@BrendanAnnable @alexlafroscia @devrelm ์ˆ˜์ • ์‚ฌํ•ญ์„ 5.0.x ๋‹ค์‹œ ํŒจ์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

@shilman ์Šคํ† ๋ฆฌ ๋ถ ์ถœ์‹œ ์ผ์ •์ด ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ (์˜ˆ : 5.1.x), ์ด๋กœ ์ธํ•ด ์Šคํ† ๋ฆฌ ๋ถ 5๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ฐจ๋‹จ๋˜๋ฏ€๋กœ ๊ฐ€๋Šฅํ•˜๋ฉด์ด ์ˆ˜์ •์ด ์ผ๋ถ€ ๋น„ ์•ŒํŒŒ ์ถœ์‹œ ๋ฒ„์ „์— ์ ์šฉ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค ๐Ÿ™‚

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” ์‹ค (๋˜๋Š” npm)์ด ์ด์ƒํ•˜๊ฒŒ (์ด ๊ฒฝ์šฐ์—๋Š” ์•„๋‹˜) ํŒจํ‚ค์ง€๋ฅผ ๋“ค์–ด ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. yarn list ๋˜๋Š” yarn why ์ถœ๋ ฅ์—๋„ ๊ฒฐํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

% yarn why emotion-theming
yarn why v1.15.2
[1/4] ๐Ÿค”  Why do we have the module "emotion-theming"...?
[2/4] ๐Ÿšš  Initialising dependency graph...
[3/4] ๐Ÿ”  Finding dependency...
[4/4] ๐Ÿšก  Calculating file sizes...
=> Found "[email protected]"
info Reasons this module exists
   - "_project_#some_project#@storybook#addon-actions#@storybook#theming" depends on it
   - Hoisted from "_project_#some_project#@storybook#addon-actions#@storybook#theming#emotion-theming"
โœจ  Done in 1.74s.

% yarn list emotion-theming
yarn list v1.15.2
warning Filtering by arguments is deprecated. Please use the pattern option instead.
โ””โ”€ [email protected]
โœจ  Done in 1.86s.

% find . -type d -name emotion-theming
./some_project/node_modules/@storybook/addon-actions/node_modules/emotion-theming
./some_project/node_modules/@storybook/theming/node_modules/emotion-theming
./node_modules/@storybook/ui/node_modules/emotion-theming
./node_modules/@storybook/router/node_modules/emotion-theming

๋ณด์‹œ๋‹ค์‹œํ”ผ yarn์€ ๋ฃจํŠธ๋กœ ๋“ค์–ด ์˜ฌ๋ ค์•ผํ•˜๋Š” emotion-theming ํŒจํ‚ค์ง€๊ฐ€ ํ•˜๋‚˜๋งŒ ์žˆ๋‹ค๊ณ ๋ณด๊ณ ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‚ฌ์‹ค์€ ์•„๋‹™๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ๊ฑธ์ณ 4 ๊ณณ์— ๋ณต์ œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค / npm ๋ฒ„๊ทธ์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ข…์†์„ฑ์˜ dependencies ๋ฐ peerDependencies ์ด์ด ์ด์ƒํ•œ ๋™์ž‘์˜ ์›์ธ์ผ๊นŒ์š”? ์Šคํ† ๋ฆฌ ๋ถ ํŒจํ‚ค์ง€์˜ ์ฃผ์š” ๋ฒ„์ „์ด ๋‹ค๋ฅด๋ฉด ๋‚ด ์Šคํ† ๋ฆฌ ๋ถ ์„ค์ •์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : @storybook/[email protected] ๋ฐ @storybook/[email protected] .

๋˜ํ•œ monorepo ์–€ ์ž‘์—… ๊ณต๊ฐ„๊ณผ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์˜ nohoisting์„ ์กฐํ•ฉํ•˜๋Š” ๊ฒƒ๋„์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์š”์ธ์ด ๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

"workspaces": { "nohoist": [ "some_project/*", "some_project/@*/*", ], "packages": [ "some_project", ] },

๋‚˜๋Š” ๋˜ํ•œ ๋™์ผํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์œ„์˜ ๋Œ€๋ถ€๋ถ„์˜ ์†”๋ฃจ์…˜์œผ๋กœ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ๋˜ํ•œ ์•ŒํŒŒ ๋ฒ„์ „์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
๋‚˜์—๊ฒŒ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ @emotion/core ์˜ ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ์ฐพ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜๋™ ์„ค์น˜๊ฐ€ ์ž‘๋™ํ•˜์ง€๋งŒ ํ•ญ์ƒ ๋ˆ„๋ฝ ๋œ ๋ฒ„์ „์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ๋‘ ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

/[email protected] /repos/ui
โ”œโ”€โ”ฌ @storybook/[email protected]
โ”‚ โ””โ”€โ”ฌ @storybook/[email protected]
โ”‚   โ””โ”€โ”€ @emotion/[email protected]  deduped
โ”œโ”€โ”ฌ @storybook/[email protected]
โ”‚ โ””โ”€โ”€ @emotion/[email protected]
โ””โ”€โ”ฌ @storybook/[email protected]
  โ””โ”€โ”ฌ @storybook/[email protected]
    โ””โ”€โ”ฌ @storybook/[email protected]
      โ””โ”€โ”€ UNMET PEER DEPENDENCY @emotion/[email protected]

npm ERR! peer dep missing: @emotion/core@^10.0.0, required by [email protected]

๋‚˜๋Š” ๋˜ํ•œ ์ˆ˜๋™์œผ๋กœ npm i @storybook/theming ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ์šด์ด ์—†์Šต๋‹ˆ๋‹ค.

@devrelm ์ˆ˜์ • ์‚ฌํ•ญ (# 6435)์€ npm์—์„œ๋„ ์ž‘๋™ํ•ด์•ผํ•˜๋ฉฐ yarn .. ๋งž์Šต๋‹ˆ๊นŒ?

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ @whyayala , ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

5.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์ •ํ™•ํžˆ ๋™์ผํ•œ ๋ฌธ์ œ๋กœ 5.1.9๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, @ emotion / core (10.0.10) ๋ฒ„์ „ ํ•˜๋‚˜๋งŒ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@alasdairhurst ๋‚˜๋Š” ๋˜ํ•œ์ด ๋ฌธ์ œ์— ๋›ฐ์–ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฐ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ CRA๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://github.com/marco-silva0000/cra-test-pnp-storybook

@storybook/theming ๋ฅผ ๋ช…์‹œ ์  ์ข…์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค.

์™œ ๋„์›€์ด๋˜์—ˆ๋Š”์ง€ ์ดํ•ด ํ–ˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ์—๊ฒŒ๋„ ๋„์›€์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค : P

์ด๊ฒƒ์ด ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด-๋‚˜๋„์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ ์›น ์‚ฌ์ดํŠธ ํด๋” ์™ธ๋ถ€์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์žˆ์Œ์„ ๊นจ๋‹ซ๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค ... ๊ทธ๋ž˜์„œ package.json์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค ...

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰