Fable: Fable.Core 3.0 ์•ˆ์ •ํ™” ๋ฒ„์ „ ์ถœ์‹œ

์— ๋งŒ๋“  2019๋…„ 04์›” 11์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: fable-compiler/Fable

์•ˆ๋…•ํ•˜์„ธ์š” @et1975 , @MangelMaxime , @Zaid-Ajaj, @dbrattli์ž…๋‹ˆ๋‹ค!

๋‚˜๋Š” ์•ž์œผ๋กœ Fable.Core 3.0 ์•ˆ์ •ํŒ์„ ์ถœ์‹œํ•  ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด Fable.Core๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ Fable.Core 2.0์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ์•ˆ์ •์ ์ธ ํŒจํ‚ค์ง€์™€ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ƒˆ ํŒจํ‚ค์ง€์˜ ์•ˆ์ •์ ์ธ ๋ฒ„์ „(Elmish 3)์„ ์ถœ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ด์ƒ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. , Thoth.Json 3, Fable.SimpleHttp ๋“ฑ) ๊ฑฐ์˜ ๋™์‹œ์—.

์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ด? ํŒจํ‚ค์ง€๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ๋‹ค์Œ ์ฃผ์— ์ถœ์‹œ ๋‚ ์งœ๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ• ๊นŒ์š”?

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

์ด๋ก ์ƒ์œผ๋กœ ๋‚ด๊ฐ€ ๋†“์นœ ํŒจํ‚ค์ง€๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ ์ง€๊ธˆ ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์–ด์ œ Elmish.Bridge๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์‹œํ—˜ํŒ์„ ์ถœ์‹œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค! ๐Ÿ˜—

elmish 3 ์•ˆ์ •ํ™”๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

prerelease ๋Š” ์ถœ์‹œ๋œ์ง€ ์˜ค๋ž˜๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Fable 2.2์™€ Fable.Core 3.0์ด ์•ˆ์ •์ ์ธ์ง€ ์•„์ง ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ๊ณผ๊ฑฐ์— ๋ณด์•˜๋“ฏ์ด ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์€ prerelease ํŒจํ‚ค์ง€๋ฅผ ์‹œ๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :).

nuget์—์„œ Fable.Core ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชฉ๋ก์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๋”ฐ๋ผ์„œ ๋ชจ๋‘ ์ด์‹ํ•˜๋ฉด ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•ˆ์ •์ ์ธ ์ƒํƒœ๋กœ ๊ฒŒ์‹œ๋  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ชฉ๋ก ์€ ์ข…์† ํ•ญ๋ชฉ์ด ๋กœ๋“œ๋  ๋•Œ ์ฑ„์›Œ์ง€์ง€๋งŒ ์ข‹์€ ์ถœ๋ฐœ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชฉ๋ก์—์„œ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • Fable.ReactLeaflet
  • Fulma.Extensions.Wikiki.* (์•„๋งˆ๋„ 6-7๊ฐœ๊ฐ€ ๋ˆ„๋ฝ๋จ)

๊ทธ๋ž˜์„œ ์–ผ๋งˆ๋‚˜ ์ข‹์€์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์žˆ๋‹ค! ์•ˆ์ • ๋ฆด๋ฆฌ์Šค ํ›„ ๋ฉฐ์น  ์•ˆ์— ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋˜๋ฉด ์ €์—๊ฒŒ ํ•‘์„ ๋ณด๋‚ด์ฃผ์„ธ์š” ;)

๋‹ต๋ณ€ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฐ ๋‹ค์Œ ํ† ์š”์ผ์— Fable.Core 3.0์„ ๊ฒŒ์‹œํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค(์™„๋ฃŒ๋˜๋ฉด ์—ฌ๊ธฐ์—์„œ ๋‹ค์‹œ ์•Œ๋ ค ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ์ฃผ์— ๋ˆ„๋ฝ๋œ ํ•ญ๋ชฉ์„ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.+1:

์ข‹์€ ์†Œ์‹! ์ƒˆ ์ง์žฅ ๋•Œ๋ฌธ์— ๋ฆฌ์•ก์…˜์ด ์กฐ๊ธˆ ๋Šฆ์—ˆ์ง€๋งŒ Fable 3๋ฅผ ์ถœ์‹œํ•ด ์ฃผ์„ธ์š”. ๋‹ค์‹œ ๋ฌผ ์œ„์— ๋–  ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๋”ฐ๋ผ์žก๊ฒ ์Šต๋‹ˆ๋‹ค.

@alfonsogarciacaro https://github.com/SAFE-Stack/SAFE-BookStore/pull/388 ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๋•Œ๊นŒ์ง€ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์—ฐ๊ธฐํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ์ง„์งœ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ „ํ˜€ ๋ชจ๋ฅด๊ณ  ํ•ด๊ฒฐ์ฑ…์„ ๋ชจ๋ฅธ ์ฑ„ ๋ชจ๋“  SAFE ํ”„๋กœ์ ํŠธ๋ฅผ ์ค‘๋‹จํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Fable.Core 3 _stablish_๋Š” ๋‚ด๊ฐ€ ์ง์ ‘ ๊ฒŒ์‹œํ•œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€(Fable.Promise, Fable.Fetch, Fable.Browser)์˜ ์ƒˆ ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ ๋ฐฉ๊ธˆ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. * , Fable.React. ์—ฌ๊ธฐ์— Fable.React 5์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์— ๋Œ€ํ•œ ๊ฒŒ์‹œ๋ฌผ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์†๊ฐ€๋ฝ์ด ๊ต์ฐจ ๐Ÿคž

Thoth.Json์ด ์•ˆ์ •์ ์ธ ๋ฒ„์ „์œผ๋กœ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Thoth.Elmish.* ๋ฐ Fulma ์˜ ์ผ๋ถ€ ํŒจํ‚ค์ง€๊ฐ€ ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ์ง€๊ธˆ Fable.Elmish๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

elmish, .react, .browser ๋ฐ .debugger๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

FontAwesome์„ ์‚ฌ์šฉํ•˜๋ฉด FSC๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ FS0193: ์ปดํŒŒ์ผ ๋‹จ์œ„ 'Fable.React'์˜ ๋ชจ๋“ˆ/๋„ค์ž„์ŠคํŽ˜์ด์Šค 'Fable.Import.React'์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ๋ชจ๋“ˆ ๋˜๋Š” ์œ ํ˜• 'ReactElement'๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. [/Users/dbattli/Developer/GitHub/ .../src/์„œ๋ฒ„/์„œ๋ฒ„.fsproj]

Fable.Elmish.Reaction.3.0.0 ์ถœ์‹œ

FontAwesome์„ ์‚ฌ์šฉํ•˜๋ฉด FSC๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ FS0193: ์ปดํŒŒ์ผ ๋‹จ์œ„ 'Fable.React'์˜ ๋ชจ๋“ˆ/๋„ค์ž„์ŠคํŽ˜์ด์Šค 'Fable.Import.React'์— ๋„ค์ž„์ŠคํŽ˜์ด์Šค, ๋ชจ๋“ˆ ๋˜๋Š” ์œ ํ˜• 'ReactElement'๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. [/Users/dbattli/Developer/GitHub/ .../src/์„œ๋ฒ„/์„œ๋ฒ„.fsproj]

prerelease ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด๋Š” ์ •์ƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํŒจํ‚ค์ง€๋Š” ์•„์ง ์•ˆ์ •์ ์œผ๋กœ ์ถœ์‹œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  • Thoth.Elmish.*
  • Fulma ๊ด€๋ จ ํŒจํ‚ค์ง€
  • Fable.FontAwesome
  • Elmish.HMR

์—˜๋ฏธ์‰ฌ 3.0์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด ํŒจํ‚ค์ง€์˜ ์•ˆ์ •์ ์ธ ๋ฒ„์ „์„ ์˜ค๋Š˜ ๋˜๋Š” ๋‚ด์ผ ์‹œ๊ฐ„์ด ์žˆ์„ ๋•Œ ์ถœ์‹œํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. :)

Elmish.Bridge ๋„ ์ถœ์‹œ๋จ

์ด๋ก ์ƒ์œผ๋กœ ๋‚ด๊ฐ€ ๋†“์นœ ํŒจํ‚ค์ง€๊ฐ€ ์—†์œผ๋ฉด ๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ ์ง€๊ธˆ ์ถœ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์•ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ Fable.Elmish.Debugger prerelease ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ์•ˆ์ • ๋ฆด๋ฆฌ์Šค๊ฐ€ 2.0.3 on nuget ์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ๊ทธ๊ฒƒ์—์žˆ๋Š” ๋™์•ˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ง€๊ธˆ ์ค€๋น„๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค :) https://github.com/elmish/debugger/issues/27

Fable.Node ์—๋Š” ์ผ๋ถ€ :heart:๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

"ํŒจํ‚ท ์—…๋ฐ์ดํŠธ" ๋ช…๋ น์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ์ปดํŒŒ์ผ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์‹  ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํฌํ•จ๋  "Elmish ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ”„๋กœ์ ํŠธ"์— ๋Œ€ํ•œ ์‹ค์ œ ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ ์ข€ ๋ด:

_์ž˜๋ชป๋œ ์˜์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค_

์•ˆ๋…•ํ•˜์„ธ์š” @frank-hliva ,

Fable.Elmish.HMR ์ด ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ 4.0.1 ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ fable.core 3.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ–ˆ๊ณ  ๋ชจ๋“  TypedArrays๊ฐ€ fable.core์—์„œ ์‚ฌ๋ผ์ง„ ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™๊ธฐ๋ฅผ ์ดํ•ดํ•˜์ง€๋งŒ Uint8Array(somebuffer, 10, 8)์™€ ๊ฐ™์€ ๋ทฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ emit์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

Btw Fable.Import.Browser๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋งŽ์€ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(TypedArray๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—). ์ข…์†์„ฑ์˜ ์˜๋ฏธ๋ก ์  ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฑด๋ฐฐ

์•ˆ๋…•ํ•˜์„ธ์š” @krauthaufen ์ž…๋‹ˆ๋‹ค .

Fable-compiler 2.2 ๋ฐœํ‘œ, Fable.Core 3 ๋ฐ ๊ธฐํƒ€ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ๋ณด์…จ์Šต๋‹ˆ๊นŒ?

Fable.Import.Browser ๋Š” ์ด์ œ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋Œ€์ฒด ํŒจํ‚ค์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ง€ ๊ด€๋ฆฌ๊ฐ€ ๋” ์‰ฝ๊ณ  ๋งŽ์€ ๋งˆ๋ฒ•์„ ์ œ๊ฑฐํ•˜์—ฌ IDE์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋กœ ๋ถ„ํ• ํ–ˆ์Šต๋‹ˆ๋‹ค. :)

Uint8Array ์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@alfonsogarciacaro Fable.Import.Browser ์˜ ์ƒˆ ๋ฒ„์ „์„ ์ถœ์‹œํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ [<Osbelete>] ์†์„ฑ์„ ์œ ํ˜• ์œ„์— ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ๋žŒ๋“ค์„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•ด?

@MangelMaxime ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
= 2.*.* ๋Œ€์‹  ํŒจํ‚ค์ง€์—์„œ ์˜๋„์ ์œผ๋กœ >= ์ข…์†์„ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
๊ฑด๋ฐฐ

์ •ํ™•ํžˆ๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค^^

๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ dotnet pack ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋ณธ ํ”„๋กœ์ ํŠธ์˜ ๋Œ€๋ถ€๋ถ„์€ >= ๋„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์Šค์Šค๋กœ์—๊ฒŒ ์งˆ๋ฌธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ด€๋ จ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ž์œ ๋กญ๊ฒŒ ๋ฌธ์ œ๋ฅผ ์—ฌ์‹ญ์‹œ์˜ค. :)

@Zaid-Ajaj Fable.Node ํŒจํ‚ค์ง€์˜ ์ƒˆ ์œ ์ง€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ฌผ์–ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. :) Fable.Node ์ €์žฅ์†Œ์—์„œ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ผ๊นŒ์š”?

@krauthaufen ํ”„๋กœ์ ํŠธ ์—…๋ฐ์ดํŠธ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํŽธํ•จ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด ํ˜ผ์ž ์œ ์ง€ํ•˜๊ธฐ์—๋Š” ๋„ˆ๋ฌด ์ปค์ ธ์„œ "ํ•ต์‹ฌ" ํŒจํ‚ค์ง€์—์„œ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๊ธฐ์—ฌ์ž๊ฐ€ ๋” ์‰ฝ๊ฒŒ ๋„์šธ ์ˆ˜ ์žˆ๋„๋ก ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ๋ถ„ํ• ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. Maxim์ด ๋งํ–ˆ๋“ฏ์ด ์ง€์นจ ๋ฐ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ๊ณ  ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ํ˜•์‹ํ™”๋œ ๋ฐฐ์—ด์— ๋Œ€ํ•ด Fable์ด ๊ฐ™์€ ๋ฐฉ์‹(๋ฐฐ์—ด, ์ •๊ทœ์‹)์œผ๋กœ ์ปดํŒŒ์ผํ•œ .NET/JS ์œ ํ˜•์„ ํ†ตํ•ฉํ•˜์—ฌ ๋” ๋งŽ์€ ๊ด€์šฉ์  ๋ฐ”์ธ๋”ฉ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. Uint8Array ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด byte[] ๋กœ ๋™ํ™”๋ฉ๋‹ˆ๋‹ค. . ๊ทธ๋Ÿฌ๋‚˜ ํŠน์ • JS ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด์ „ JS ์œ ํ˜• ๋ฐฐ์—ด ๋ฐ”์ธ๋”ฉ์„ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜(์ด๋ฅผ ์œ„ํ•ด ์ž์› ๋ด‰์‚ฌ์ž๊ฐ€ ํ•„์š”ํ•จ) ํ”„๋กœ์ ํŠธ์— ๋ณต์‚ฌ ํ•˜์—ฌ Global ๋กœ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์†์„ฑ, ์˜ˆ:

let [<Global>] Uint8Array: Uint8ArrayConstructor = jsNative

@frank-hliva ์—…๋ฐ์ดํŠธ์— ํ˜ผ์„ ์„ ๋“œ๋ ค ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค . ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ™•์ธ ํ•˜์„ธ์š”. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ Fable.Import.React > Fable.React & Elmish.Browser.Navigation > Emish.Navigation ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@alfonsogarciacaro ์™„๋ฃŒ

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