Docz: docz dev๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ค‘ ๋ฉˆ์ถค

์— ๋งŒ๋“  2019๋…„ 03์›” 22์ผ  ยท  26์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: doczjs/docz

docz rc 1.0.0 rc3์„ ์‹œ๋„ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

โœ– ์ •์  ์œ ํ˜•์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜
โœ– ์˜ค๋ฅ˜ ์˜ค๋ฅ˜ : ์ ํ•ฉํ•œ ๊ตฌ์„ฑ ์š”์†Œ ์ •์˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ตฌ๋ฌธ ๋ถ„์„์‹œ (/Users/bugzpodder/ui/node_modules/docz-core/node_modules/react-docgen/dist/parse.js:70:13)
Object.defaultParse์—์„œ [๋ถ„์„์œผ๋กœ] (/Users/bugzpodder/ui/node_modules/docz-core/node_modules/react-docgen/dist/main.js:64:29)
ํ•ด๊ฒฐ์‹œ (/Users/bugzpodder/ui/node_modules/docz-core/dist/index.js:1412:38)
์ƒˆ๋กœ์šด ์•ฝ์†์—์„œ ()
jsParser (/Users/bugzpodder/ui/node_modules/docz-core/dist/index.js:1409:12)
Promise.all.files.map (/Users/bugzpodder/ui/node_modules/docz-core/dist/index.js:1430:15)
Array.map ()
docgen (/Users/bugzpodder/ui/node_modules/docz-core/dist/index.js:1427:42)

๋””๋ฒ„๊ทธ ์„ค์ • : ํ•ด์ œํ•˜๊ณ  UI๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉˆ ์ถฅ๋‹ˆ ๋‹ค.
โ— Docz โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ ๊ฑด๋ฌผ (10 %) 2/4 ๋ชจ๋“ˆ 2 ๊ฐœ ํ™œ์„ฑํ™”
../node_modules/url/url.js

์•ฝ 5 ๋ถ„ ํ›„ ๋‹ค์Œ UI ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๋นŒ๋“œ ์„ฑ๊ณต์„ ์–ป์Šต๋‹ˆ๋‹ค.
์ž˜๋ชป๋œ ํ›„ํฌ ํ˜ธ์ถœ์ž…๋‹ˆ๋‹ค. ํ›„ํฌ๋Š” ํ•จ์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋ณธ๋ฌธ ๋‚ด์—์„œ๋งŒ ํ˜ธ์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ด์œ  ์ค‘ ํ•˜๋‚˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. React์™€ ๋ Œ๋”๋Ÿฌ (์˜ˆ : React DOM)์˜ ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ํ›„ํฌ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ๋™์ผํ•œ ์•ฑ์— ๋‘˜ ์ด์ƒ์˜ React ์‚ฌ๋ณธ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์ด ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํŒ์€ https://fb.me/react-invalid-hook-call ์„ ์ฐธ์กฐ
  10 |   useDataServer('ws://127.0.0.1:60505')
  11 |   return (
  12 |     <Theme linkComponent={Link} db={database}>
> 13 |       <Routes imports={imports} />
     |      ^  14 |     </Theme>
  15 |   )
  16 | }
  11 | const root = document.querySelector('#root')
  12 | const render = (Component = Root) => {
  13 |   onPreRender()
> 14 |   ReactDOM.render(<Component />, root, onPostRender)
     |  ^  15 | }
  16 | 
  17 | render(Root)

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

๊ฐ™์€ ๋ฌธ์ œ

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

์˜ค๋Š˜ ์ด๊ฒƒ์„ ์‚ดํŽด๋ณด๊ณ  Docz์— ๋Œ€ํ•œ package.json ํŒŒ์ผ์„ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” React ํƒ€์ดํ•‘์ด ^16.8.2 ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. Docz๊ฐ€์žˆ๋Š” ํ”„๋กœ์ ํŠธ์— React ^16.8.3 ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

Docz๊ฐ€์žˆ๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค์Œ ๋ฒ„์ „์˜ React๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

    "react": "^16.8.2",
    "react-dom": "^16.8.2",

๊ทธ ํ›„ .docz ํด๋”์™€ node_modules . ๋งˆ์ง€๋ง‰์œผ๋กœ node_modules ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ณ  docz๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๊ดœ์ฐฎ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค!

ํฅ๋ฏธ๋กœ์šด ์ ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ํ•ด์•ผํ•˜๋Š” React ๋ฒ„์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ”ผ์–ด ์ข…์†์„ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. @pedronauck Readme๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ํŠน์ • React ๋ฒ„์ „์„ package.json ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ œ์ถœํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค .

@ mwood23์ด ๋งํ•œ ๋‚ด์šฉ์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@pedronauck ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฐ˜์‘์„ package.json์— 16.8.2์— ๊ณ ์ •ํ•˜๊ณ  docz๊ฐ€ ์ž๋™์œผ๋กœ 16.8.6์„ ์„ค์น˜ํ•˜๋ฏ€๋กœ ์ด์ œ ๋‘ ๊ฐ€์ง€ ๋ฒ„์ „์˜ ๋ฐ˜์‘์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค (์›์‚ฌ ์ด์œ ์— ๋”ฐ๋ผ)
๋‚ด ๋ฐ˜์‘์„ 16.8.6์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋Š”๋ฐ ์ด์ œ ํ•˜๋‚˜์˜ ๋ฒ„์ „ ๋งŒ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์œ„์˜ ๋™์ผํ•œ ์˜ค๋ฅ˜๋กœ ์Šคํƒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

DOCZ_SOURCE=./src/ yarn docz dev debug
yarn run v1.15.2
$ ~/dev/node_modules/.bin/docz dev debug

โ— Docz โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ building (10%) 2/4 modules 2 active
  ../node_modules/url/url.js


<--- Last few GCs --->

[68584:0x102645000]   123578 ms: Mark-sweep 1391.3 (1424.5) -> 1390.8 (1423.5) MB, 645.1 / 0.0 ms  (average mu = 0.091, current mu = 0.038) allocation failure scavenge might not succeed
[68584:0x102645000]   123583 ms: Scavenge 1391.6 (1423.5) -> 1391.1 (1424.0) MB, 2.7 / 0.0 ms  (average mu = 0.091, current mu = 0.038) allocation failure 
[68584:0x102645000]   123587 ms: Scavenge 1391.8 (1424.0) -> 1391.3 (1424.5) MB, 2.5 / 0.0 ms  (average mu = 0.091, current mu = 0.038) allocation failure 


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x17ac3f1dbe3d]
Security context: 0x31c23fe9e6e1 <JSObject>
    1: /* anonymous */ [0x31c2e77794f9] [~/dev/node_modules/ast-types/lib/path-visitor.js:~174] [pc=0x17ac3f9c941f](this=0x31c2a9841179 <Object map = 0x31c2a3acbf79>,path=0x31c2b54c0d49 <NodePath map = 0x31c2a3ac6881>)
    2: /* anonymous */ [0x31c2e77794f9] [~/dev/node_modules/ast-types/lib/path-visitor.js:~174] [pc=0x17ac3f9...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10003b125 node::Abort() [~/.nvm/versions/node/v10.15.0/bin/node]
 2: 0x10003b32f node::OnFatalError(char const*, char const*) [~/.nvm/versions/node/v10.15.0/bin/node]
 3: 0x1001a8e85 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [~/.nvm/versions/node/v10.15.0/bin/node]
 4: 0x1005742a2 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [~/.nvm/versions/node/v10.15.0/bin/node]
 5: 0x100576d75 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [~/.nvm/versions/node/v10.15.0/bin/node]
 6: 0x100572c1f v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [~/.nvm/versions/node/v10.15.0/bin/node]
 7: 0x100570df4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [~/.nvm/versions/node/v10.15.0/bin/node]
 8: 0x10057d68c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [~/.nvm/versions/node/v10.15.0/bin/node]
 9: 0x10057d70f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [~/.nvm/versions/node/v10.15.0/bin/node]
10: 0x10054d054 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [~/.nvm/versions/node/v10.15.0/bin/node]
11: 0x1007d4f24 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [~/.nvm/versions/node/v10.15.0/bin/node]
12: 0x17ac3f1dbe3d 
13: 0x17ac3f9c941f 
error Command failed with signal "SIGABRT".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

์•„๋งˆ๋„ docz ๋ฐ docz-theme-default๊ฐ€ react ๋ฐ react-dom์„ peerDependency๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด peerDependency๋กœ ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€ ์š”์ฒญ์„ํ•˜๋Š” ๊ฒƒ์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ œ์‹œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. npm์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (https://github.com/rogeriochaves/npm-force-resolutions)๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด lib๋Š” ์ข…์†์„ฑ์ด ์ค‘๋ณต๋˜์ง€ ์•Š์€ ํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ ์‚ฌ์šฉํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์„ค์น˜ ํ›„ ์ด๊ฒƒ์„ ๋‚ด package.json์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

"resolutions": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6"
}

๊ทธ๋ฆฌ๊ณ  docz๊ฐ€ ๋‹ค์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.)
์ถ”์‹ . rc7 ๋ฐ rc8 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ ๋ฒ„์ „์—์„œ ํ•ด๊ฒฐ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. docz๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์„ ๋•Œ ๋‚ด ํ”„๋กœ์ ํŠธ๋Š” 16.8.2 ์˜€์œผ๋ฏ€๋กœ docz๋Š” 16.8.6์—์„œ ์ž์ฒด react ์‚ฌ๋ณธ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด node_modules ๋ฐ ํŒจํ‚ค์ง€ ์ž ๊ธˆ์„ ์ œ๊ฑฐํ•˜๊ณ  ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด docz์—์„œ ์ค‘๋ณต ์ œ๊ฑฐ๋˜๊ณ  ๋ฌธ์ œ๊ฐ€ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
image

์ด๊ฒƒ์ด ๋ฐ”๋กœ peerDependencies ๋ชฉ์ ์ž…๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
Error parsing static types ร— error Error: No suitable component definition found.

ํ•˜์ง€๋งŒ ๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. package.json์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
"์ด๋ฆ„": "๋“œ๋ผ์ด๋ฒ„ ์•ฑ",
"๋ฒ„์ „": "0.1.0",
"private": ์ฐธ,
"ํ™ˆํŽ˜์ด์ง€": "/ react /",
"์ข…์†์„ฑ": {
"axios": "^ 0.18.0",
"๊ธฐ๋ก": "^ 4.9.0",
"๋ฐ˜์‘": "^ 16.8.2",
"react-dom": "^ 16.8.2",
"react-css-modules": "^ 4.7.9",
"react-modal": "^ 3.8.1",
"react-router-dom": "^ 4.3.1",
"๋ฐ˜์‘ ์Šคํฌ๋ฆฝํŠธ": "2.1.5",
"๋งค๋„๋Ÿฝ๊ฒŒ ๋ฐ˜์‘": "^ 0.23.2"
},
"์Šคํฌ๋ฆฝํŠธ": {
"start": "๋ฐ˜์‘ ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘",
"build": "๋ฐ˜์‘ ์Šคํฌ๋ฆฝํŠธ ๋นŒ๋“œ",
"test": "๋ฐ˜์‘ ์Šคํฌ๋ฆฝํŠธ ํ…Œ์ŠคํŠธ",
"eject": "๋ฐ˜์‘ ์Šคํฌ๋ฆฝํŠธ ๊บผ๋‚ด๊ธฐ",
"docz : dev": "docz dev",
"docz : build": "docz ๋นŒ๋“œ"
},
"eslintConfig": {
"extends": "react-app"
},
"browserslist": [
"> 0.2 %",
"์ฃฝ์ง€ ์•Š์•˜๋‹ค",
"์ฆ‰, <= 11์ด ์•„๋‹˜",
"op_mini ๋ชจ๋‘ ์•„๋‹˜"
],
"devDependencies": {
"docz": "์ตœ์‹ ",
"docz-theme-default": "^ 1.0.4",
"ํšจ์†Œ": "^ 3.9.0",
"enzyme-adapter-react-16": "^ 1.12.1",
"svg-sprite-loader": "^ 4.1.3"
}
}

๋ˆ„๊ตฌ๋“ ์ง€ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ™์€ ๋ฌธ์ œ

๋‚ด๊ฐ€ & @alexhawkins๊ฐ€ ๊ทธ๊ฒƒ์„

๋‚ด ์ƒํ™ฉ์€ Lerna์™€ ๊ฐ™์€ monorepo ๋„๊ตฌ๊ฐ€ ์•„๋‹Œ npm ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ด€๋ฆฌ๋˜๋Š” monorepo๊ฐ€ โ€‹โ€‹์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  Gatsby ์•ฑ์ด ํฌํ•จ ๋œ ํ”„๋ŸฐํŠธ ์—”๋“œ ํด๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ŸฐํŠธ ์—”๋“œ ์ €์žฅ์†Œ package.json์—๋Š”

  "resolutions": {
    "react": "^16.8.6",
    "react-dom": "^16.8.6"
  },
"dependencies" : {
    "react": "16.8.6",
    "react-dom": "16.8.6"
},
  "devDependencies": {
    "docz": "^1.0.4",
    "docz-theme-default": "^1.0.4"
}
  1. .docz ์„ .gitignore
  2. frontend ํด๋”, rm -rf node_modules package-lock.json .docz
  3. frontend ํด๋”, npm i
  4. frontend ํด๋”, docz dev

์ž˜ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ด๊ฒƒ์„ ์ฝ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๊ฒฝ์šฐ react ์ข…์†์„ฑ์€ https://github.com/pedronauck/docz/blob/master/core/docz/package.json์—์žˆ๋Š” React ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ์‹œ๋„ํ•œ ํ›„ V1๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด React ๋ฒ„์ „ ๋“ฑ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•œ ์Šคํƒ ์ถ”์ ์ด ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.

โ— Docz โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ building (11%) 9/16 modules 7 active
 node_modules/docz-core/node_modules/webpack-dev-server/client/overlay.js


<--- Last few GCs --->

[7187:0x10276f000]    28993 ms: Scavenge 1389.3 (1422.5) -> 1388.9 (1423.0) MB, 2.2 / 0.0 ms  (average mu = 0.093, current mu = 0.039) allocation failure 
[7187:0x10276f000]    28996 ms: Scavenge 1389.6 (1423.0) -> 1389.2 (1423.5) MB, 2.2 / 0.0 ms  (average mu = 0.093, current mu = 0.039) allocation failure 
[7187:0x10276f000]    29000 ms: Scavenge 1389.9 (1423.5) -> 1389.5 (1424.5) MB, 2.4 / 0.0 ms  (average mu = 0.093, current mu = 0.039) allocation failure 


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x14a3e9a4fc7d]
Security context: 0x3042e899d949 <JSObject>
    1: getMembers(aka getMembers) [0x3042a4ca4ef9] [/Users/simon.bailey/src/web-ui/node_modules/react-docgen/dist/utils/getMembers.js:~43] [pc=0x14a3ea33dc3e](this=0x3042c9e825b1 <undefined>,0x3042b2f35bc1 <NodePath map = 0x3042a6c16111>,0x3042c9e82741 <true>)
    2: getPropType(aka getPropType) [0x3042dec3fd21] [/Users/simon.bailey/src/web-ui/node_modules/r...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x100062991 node::Abort() [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 2: 0x100063030 node::errors::TryCatchScope::~TryCatchScope() [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 3: 0x10019cf37 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 4: 0x10019ced4 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 5: 0x1005a2032 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 6: 0x1005a4563 v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 7: 0x1005a0a98 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 8: 0x10059ec55 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
 9: 0x1005ab4fc v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
10: 0x1005ab57f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
11: 0x10057a774 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
12: 0x10082cc94 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/simon.bailey/.nvm/versions/node/v11.7.0/bin/node]
13: 0x14a3e9a4fc7d 

๋˜ํ•œ npm ๋งํฌ๋กœ ๋กœ์ปฌ๋กœ ์—ฐ๊ฒฐ๋œ ๋ณ„๋„์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์ด์ค‘ React ์„ค์น˜๋กœ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ํ…Œ๋งˆ์˜ node_modules์—์„œ ๋ฐ˜์‘์„ ์‚ญ์ œํ•˜๊ณ  ํ…Œ๋งˆ์˜ node_modules์— ๋Œ€ํ•œ ๋ฌธ์„œ ํ”„๋กœ์ ํŠธ์˜ ๋ฐ˜์‘์„ ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ™๊ฒŒ. ๋™์ผํ•œ ํŒจํ‚ค์ง€ ๋ฒ„์ „, resolutions ํ•„๋“œ ์ถ”๊ฐ€ ๋“ฑ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์Šคํƒ ์ถ”์ .

์ด๊ฒƒ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋„ 16.8.6์— ๋Œ€ํ•œ ๋ฐ˜์‘ ๊ณ ์ •์„ ์‹œ๋„ํ•˜๊ณ , node_modules ๋ฐ package-lock.json์„ ์ œ๊ฑฐํ•˜์—ฌ ์ค‘๋ณต ์ œ๊ฑฐ ๋ฐ˜์‘ ๋ฒ„์ „์„ ์–ป์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? https://github.com/pedronauck/docz/pull/882

๋™๋ฃŒ๋Š” babel.config.js์— api.cache (true)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
https://babeljs.io/docs/en/configuration

package-lock.json ๊ตฌ์ถ•์ด ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ • ๋œ deps๊ฐ€ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ

์•ˆ๋…•ํ•˜์„ธ์š” @hipstersmoothie

์‚ฌ์šฉ์ค‘์ธ docz ๋ฒ„์ „์„ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ตœ์‹  v1 ๋ฆด๋ฆฌ์Šค์—์„œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. v2๊ฐ€ ๋ฌดํ•œ RC ์ƒํƒœ์—์„œ ๋ฉˆ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฏ€๋กœ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฒ„์ „์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ์•ˆ์ •์„ฑ์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @wldcordeiro

V2๋Š” ๋‹ค์Œ ์ฃผ ์›”์š”์ผ 11 ์›” 25 ์ผ RC ์ƒํƒœ์—์„œ ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.

์‹œ๋„ํ•ด ๋ณด์…จ๋‚˜์š”?

์‹œ๋„ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ธฐ๊บผ์ด ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค! ์•„๋‹ˆ๋ฉด ๋‹ค์Œ ์ฃผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š” ๐Ÿ‘

@rakannimer ๊ทธ๋ƒฅ debug ์—์„œ true ๋ฅผ doczrc.js ์—์„œ true ๋กœ ์„ค์ •ํ–ˆ์„ ๋•Œ v2์˜ ์ฝ˜์†”์— ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ํ‘œ์‹œ ๋  ๊ฒƒ์ด๋ผ๋Š” ์ ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค

์•ˆ๋…•ํ•˜์„ธ์š” @ Clarity-89

์–ด๋–ค ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
์˜๋„์ ์ด์ง€ ์•Š์•„ ์žฌํ˜„ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

์žฌํ˜„์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@rakannimer ์œ ํ˜•๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜ :

โœ–  fatal     Error parsing static types
โœ–  error     Error: No suitable component definition found. 
at parse (/Users/user/dev/uikit/node_modules/react-docgen/dist/parse.js:70:13)
at Object.defaultParse [as parse] (/Users/user/dev/uikit/node_modules/react-docgen/dist/main.js:64:29)
at parseFilepathProps (/Users/user/dev/uikit/node_modules/docz-core/dist/index.js:1898:33)
at Array.map (<anonymous>)
    at jsParser (/Users/user/dev/uikit/node_modules/docz-core/dist/index.js:1909:16)
    at docgen (/Users/user/dev/uikit/node_modules/docz-core/dist/index.js:2116:102)

๋ถˆํ–‰ํžˆ๋„ ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์šฉ ์ฝ”๋“œ์ด๋ฏ€๋กœ ์‹ค์ œ๋กœ ์ €์žฅ์†Œ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ Lerna์—์„œ ๊ด€๋ฆฌํ•˜๋Š” monorepo UI ๊ตฌ์„ฑ ์š”์†Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์ผ๋ถ€ ์ข…์†์„ฑ์œผ๋กœ ์ธํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ์‹คํ–‰์ค‘์ธ ์•ฑ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@rakannimer ๋‚˜๋Š” ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€๋กœ ์ž‘์€ monorepo์—์„œ ๊ฒฝ๊ณ ๋ฅผ ์žฌํ˜„ ํ•  ์ˆ˜์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. https://github.com/Clarity-89/uikit์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
์žฌํ˜„ ๋‹จ๊ณ„ :

  1. ์ €์žฅ์†Œ ๋ณต์ œ
  2. yarn install
  3. docz dev

createSchemaCustomization ๋‹จ๊ณ„ ํ›„์— ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Node 10.16.2 ๋ฐ 13.2 ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. React ์•ฑ์— Docz๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋™์ผํ•œ ์•ฑ์— ๋‘˜ ์ด์ƒ์˜ React ์‚ฌ๋ณธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Screen Shot 2020-06-01 at 12 46 56 PM

npm force-resolutions๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š”์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Docz๊ฐ€ ๋‹ค์Œ ๋ฒ„์ „์˜ react ๋ฐ react-dom์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
"๋ฐ˜์‘": "^ 16.8.0",
"react-dom": "^ 16.8.0"

๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ 16.13.1์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์ด ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์–ด๋–ค ๋„์›€์ด๋ผ๋„ ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

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