
CodeSandboxãããžã§ã¯ãã®åæéçºäžãnpmäŸåé¢ä¿ã®ãµããŒããåžžã«ç¡èŠããŸããã ä»»æã®ã©ã³ãã ãªæ°ã®ãã±ããããã©ãŠã¶ã«ã€ã³ã¹ããŒã«ããããšã¯äžå¯èœã ãšæããŸããããç§ã®é ã¯ããã«ã€ããŠèããããšãæåŠããŸããã
çŸåšãnpmãµããŒãã¯CodeSandboxã®ç¹åŸŽçãªæ©èœã®1ã€ã§ããããããªããšãå®è£
ã§ããŸããã ãã®æ©èœãã©ã®ãããªã·ããªãªã§ãæ©èœããããã«ã¯ãäœåºŠãã³ãŒããäœåºŠãæžãçŽããªããã°ãªããã仿¥ã§ãããžãã¯ãæ¹åããããšãã§ããŸãã npmãµããŒããéå§ããæ¹æ³ã仿¥ã®ãµããŒãå
容ãããã³ãããæ¹åããããã«ã§ããããšã説æããŸãã
ãæåã®ãããŒãžã§ã³
ããã«åãçµãæ¹æ³ãããããªãã£ãã®ã§ãnpmãµããŒãã®éåžžã«åçŽãªããŒãžã§ã³ããå§ããŸããã

æåã®ããŒãžã§ã³ãå®ååãããã³ã³ããŒãã³ããšReactã®ã€ã³ããŒãïŒ2016幎11æ25æ¥ïŒ
ãã®ããŒãžã§ã³ã¯éåžžã«ã·ã³ãã«ã§ããã ãã®ãããå®éã«ã¯ãµããŒãããããŸããã§ãããäŸåé¢ä¿ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ããã€ã³ã¹ããŒã«æžã¿ã®äŸåé¢ä¿ã®åœ¢åŒã§ååŒã³åºãã®ã¹ã¿ããäœæããŸããã ãã¡ãããç°ãªãããŒãžã§ã³ã®æå€§40äžåã®ããã±ãŒãžãŸã§ã®æ¡åŒµæ§ã¯ããã§ã¯èããããŸããã
ãã®ããŒãžã§ã³ã¯åœ¹ã«ç«ããªããããµã³ãããã¯ã¹ç°å¢ã§å°ãªããšã2ã€ã®äŸåé¢ä¿ãæ©èœãããããšãã§ããŠè¯ãã£ãã
WebpackããŒãžã§ã³
ç§ã¯æåã®ããŒãžã§ã³ã«æºè¶³ããMVPïŒCodeSandboxã®æåã®ãªãªãŒã¹ïŒã«ã¯ååã§ããããã«æããŸããã äžè¬çã«ãéæ³ã䜿çšããã«äŸåé¢ä¿ã確ç«ã§ãããšã¯æããããŸããã§ããã https://esnextb.in/ã«åºäŒããŸã§ã é£äžã¯æ¢ã«npmããã®äŸåé¢ä¿ããµããŒãããŠãããpackage.jsonã§ããããå®çŸ©ããã ãã§ååã§ãã-ãããŠãã¹ãŠãéæ³ã®ããã«æ©èœããŸããïŒ
ããã¯ç§ã«ãšã£ãŠçŽ æŽãããæèšã§ããã ç§ã®èãã§ãããç§ã¯ãããéçŸå®çã ãšæã£ãã®ã§ããã®ãããªnpmãµããŒãã詊ã¿ãŸããã§ããã ããããçŸå®ã®ã©ã€ã蚌æãèŠãŠãç§ã¯ããã«ã€ããŠå€ããèãå§ããŸããã æåã«ãã¢ã€ãã¢ãæšãŠãåã«å¯èœæ§ãæ¢ããªããã°ãªããŸããã§ããã
ç§ã®èãã§ã¯ãã¿ã¹ã¯ãè€éãããŸããã ç§ã®æåã®ããŒãžã§ã³ã¯æãã€ããªãã£ãã®ã§ãå³ãæããŸããã

æåã®ã¢ã€ãã¢ã¯ããããééãã§ã
ãã®ã¢ãããŒãã«ã¯1ã€ã®å©ç¹ããããŸãããå®éã®å®è£
ã¯äºæ³ãããã¯ããã«ç°¡åã§ãã
WebPack DLLãã©ã°ã€ã³ã¯ããã³ãã«å
ã®äŸåé¢ä¿ãåéãããããã§ã¹ãã§JSããã±ãŒãžïŒãã³ãã«ïŒãçºè¡ã§ããããšãããããŸããã ãã®ãããã§ã¹ãã¯æ¬¡ã®ããã«ãªããŸããã
{ "name": "dll_bundle", "content": { "./node_modules/fbjs/lib/emptyFunction.js": 0, "./node_modules/fbjs/lib/invariant.js": 1, "./node_modules/fbjs/lib/warning.js": 2, "./node_modules/react": 3, "./node_modules/fbjs/lib/emptyObject.js": 4, "./node_modules/object-assign/index.js": 5, "./node_modules/prop-types/checkPropTypes.js": 6, "./node_modules/prop-types/lib/ReactPropTypesSecret.js": 7, "./node_modules/react/cjs/react.development.js": 8 } }
åãã¹ã¯ã¢ãžã¥ãŒã«IDã«é¢é£ä»ããããŠããŸãã åå¿ããå¿
èŠãããå Žåã¯ã dll_bundle(3)
ãåŒã³åºãã ãã§ãReactãååŸã§ããŸãïŒ ããã¯ç§ãã¡ã«ãšã£ãŠå®ç§ã ã£ãã®ã§ãç§ã¯ãã®å®éã®ã·ã¹ãã ãæãã€ããŸããïŒ

ãµãŒãã¹ã®ãœãŒã¹ã³ãŒãã¯ããã«ãããŸã ã ãã®ãµãŒãã¹ã«ã¯ãnpmã§ãµã³ãããã¯ã¹ãå
¬éããããã®ã³ãŒããå«ãŸããŠããŸããåŸã§ãã®æ©èœãæŸæ£ããŸãã
ããã«ãŒãžã®ãªã¯ãšã¹ãããšã«ã /tmp/:hash
ã«æ°ãããã£ã¬ã¯ããªãäœæãã yarn add ${dependencyList}
ãå®è¡ããŠãWebPackã«ããã±ãŒãžããã«ããããŸããã çµæãgcloudã«ãã£ãã·ã¥ãšããŠä¿åããŸããã äž»ã«äŸåé¢ä¿ã®ã€ã³ã¹ããŒã«ãYarnã«çœ®ãæããWebPackã䜿çšããŠããã±ãŒãžã«å
¥ãããããå³ãããã¯ããã«ç°¡åã«ãªããŸããã
å®è¡ããåã«ããµã³ãããã¯ã¹ãããŒããããšããæåã«ãããã§ã¹ããšããã±ãŒãžããã§ãã¯ããŸããã åæäžãäŸåé¢ä¿ããšã«dll_bundle(:id)
ãåŒã³åºãdll_bundle(:id)
ã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ããŸããããŸãããnpmäŸåé¢ä¿ãéåžžãµããŒãããæåã®ããŒãžã§ã³ãäœæããŸããïŒ

ãã£ãïŒ ãããªã¢ã«ãã¶ã€ã³ã¹ã¿ã€ã«ã®ã€ã³ã¿ãŒãã§ã€ã¹ãšåçã«å®è¡å¯èœãªReactïŒ ïŒ2016幎12æ24æ¥ïŒ
ã·ã¹ãã ã«ã¯ãŸã 倧ããªå¶éããããŸãããWebPackäŸåé¢ä¿ã°ã©ãã«ãªããã¡ã€ã«ã¯ãµããŒãããŠããŸããã§ããã ã€ãŸããããšãã°require('react-icons/lib/fa/fa-beer')
ã¯æ©èœããŸãããããã¯ãå
¥åäŸåç¹ã«ãã£ãŠæåã«èŠæ±ãããããšã¯ãªãããã§ãã
ããã«ãããããããç§ã¯ãã®ãããªãµããŒãã§CodeSandboxãªãªãŒã¹ãäœæãã WebPackBinã®èè
Christian Alfoniã«é£çµ¡ããŸãã ã npmäŸåé¢ä¿ããµããŒãããããã«ãéåžžã«é¡äŒŒããã·ã¹ãã ã䜿çšããåãå¶éã«çŽé¢ããŸããã ãããã£ãŠãç§ãã¡ã¯åãåãããŠçµ¶å¯Ÿçãªããã«ãŒãäœæããããšã«ããŸããïŒ
æçš¿ä»ãWebPack
ã絶察ãããã«ãŒã¯ãéèŠåºŠã«å¿ããŠãã¡ã€ã«ãããã±ãŒãžã«è¿œå ããã¯ãªã¹ãã£ã³ã«ãã£ãŠäœæãããã¢ã«ãŽãªãºã ãé€ãã以åã®ãã®ãšåãæ©èœãåãåããŸããã æåã§ãšã³ããªãã€ã³ãã远å ããŠãWebPackããããã®ãã¡ã€ã«ãããã¯ããããã«ããŸããã ã·ã¹ãã èšå®ãç¹°ãè¿ããåŸãã©ã®ïŒïŒïŒçµã¿åããã§ãæ©èœãå§ããŸããã ãã®ãããæ¢ã«Reactã¢ã€ã³ã³ãšCSSãã¡ã€ã«ããªã¯ãšã¹ãã§ããŸãã
æ°ããã·ã¹ãã ã¯ãã¢ãŒããã¯ãã£ã®ã¢ããã°ã¬ãŒããåãåããŸãããããŒããã©ã³ãµãŒãšãã£ãã·ã¥ãæäŸããDLLãµãŒãã¹ã¯1ã€ã ãã§ããã ããã±ãŒãžåã¯ãåçã«è¿œå ã§ããè€æ°ã®ããã«ãŒã«ãã£ãŠè¡ãããŸããã

ããã±ãŒãžãµãŒãã¹ããã¹ãŠã®äººã«æé ãªäŸ¡æ Œã§æäŸããããšèããŸããã ãã®ããã圌ãã¯ãµãŒãã¹ãšãŠãŒã¹ã±ãŒã¹ã®æäœã説æãããŠã§ããµã€ããäœããŸããã ããã¯ç§ãã¡ã«å声ããããããŸãããç§ãã¡ã¯CodePenããã°ã§ãèšåãããŸãã ïŒ
ããããã絶察çãªãããã«ãŒã«ã¯ããã€ãã®å¶éãšæ¬ ç¹ããããŸããã 人æ°ãé«ãŸãã«ã€ããŠãã³ã¹ãã¯ææ°é¢æ°çã«å¢å ããããã±ãŒãžã®çµã¿åããããã£ãã·ã¥ããŸããã ããã¯ãäŸåé¢ä¿ã远å ãããšãã«ãçµã¿åããå
šäœãåæ§ç¯ããå¿
èŠããã£ãããšãæå³ããŸãã
ãµãŒããŒã¬ã¹åŠç
ç§ã¯ãã€ããã®ã¯ãŒã«ãªãã¯ãããžãŒããµãŒããŒã¬ã¹åŠçã詊ããŠã¿ããã£ãã§ãã ãã®å©ããåããŠãèŠæ±ã«å¿ããŠå®è¡ãããæ©èœã決å®ã§ããŸãã
èµ·åãããªã¯ãšã¹ããåŠçãããã°ãããããšèªåèªèº«ã殺ããŸãã ããã¯ãéåžžã«é«ãã¹ã±ãŒã©ããªãã£ãæå³ããŸãã1,000ã®åæãªã¯ãšã¹ããåä¿¡ããå Žåãå³åº§ã«1000ã®ãµãŒããŒãèµ·åã§ããŸãã ããããåæã«ãµãŒããŒã®ãªã¢ã«ã¿ã€ã ã«å¯ŸããŠã®ã¿æ¯æããŸãã
ããã¯ç§ãã¡ã®ãµãŒãã¹ã«æé©ã§ããåžžã«æ©èœããããã§ã¯ãªãã倿°ã®ãªã¯ãšã¹ããåæã«åä¿¡ããå Žåã«é«ãäžè²«æ§ãå¿
èŠã§ãã ããã§ãç§ã¯ServerlessãšåŒã°ãããã¬ãŒã ã¯ãŒã¯ã®å®éšãå§ããŸããã
ãµãŒãã¹ã®å€æŽã¯éãã«è¡ãããŸããïŒServerlessã®ãããã§ãïŒïŒã2æ¥åŸã«ã¯æ©èœããããŒãžã§ã³ãã§ããŸããã 3ã€ã®ãµãŒããŒã¬ã¹é¢æ°ãäœæããŸããã
- ã¡ã¿ããŒã¿ãã³ãã©ïŒãã®ãµãŒãã¹ã¯ããŒãžã§ã³ãšpeerDependenciesã解決ããpacker颿°ãèŠæ±ããŸããã
- PackerïŒãã®ãµãŒãã¹ã¯ãããã±ãŒãžå
ã®äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããã³åéããŸããã
- Uglifierã¯ãçµæã®ãã±ããã®éåæuglifyingãæ
åœããŸããã
å€ããµãŒãã¹ã®é£ã«æ°ãããµãŒãã¹ãéå§ããŸãããããã¹ãŠãå®ç§ã«æ©èœããŸããïŒ 1ãæããã0.18ãã«ïŒä»¥åã®100ãã«ãšæ¯èŒããŠïŒã®æ¯åºãäºæž¬ããå¿çæéã40ã700ïŒ
æ¹åããŸããã

æ°æ¥åŸã1ã€ã®å¶éã«æ°ä»ããŸãããã©ã ã颿°ã«ã¯500 MBã®ãã£ã¹ã¯ã¹ããŒã¹ãããããŸããã§ããã ãã®ãããäŸåé¢ä¿ã®ããã€ãã®çµã¿åãããã€ã³ã¹ããŒã«ã§ããŸããã§ããã ããã¯åãå
¥ããããªãã£ãã®ã§ãåã³å³ã®æç»ã«æ»ããŸããã
ãµãŒããŒã¬ã¹åŠçã®æ¹èš
æ°ãæãçµã¡ãCodeSandboxã®æ°ããã©ãããŒããªãªãŒã¹ããŸããã éåžžã«åŒ·åã§ãVueãPreactãªã©ã®ã©ã€ãã©ãªããµããŒãããŠããŸããã ããã«ãããããã€ãã®è峿·±ããªã¯ãšã¹ãããããŸãã äŸïŒPreactã§Reactã©ã€ãã©ãªã䜿çšããå Žåã require('react')
ãrequire('preact-compat')
ã«é¢é£ä»ããrequire('react')
ããããŸãã Vueã®å Žåããµã³ãããã¯ã¹ãã¡ã€ã«ã®@/components/App.vue
ã解決ããå¿
èŠãããå ŽåããããŸãã ç§ãã¡ã®ããã«ãŒã¯äžæ¯ã®ããã«ãããè¡ããŸããããä»ã®äººã¯ããããŸãã
ããã±ãŒãžã³ã°ã¿ã¹ã¯ããã©ãŠã¶ããã«ãŒã«ç§»ãã®ã§ã¯ãªãããšæãå§ããŸããã é©åãªãã¡ã€ã«ããã©ãŠã¶ã«åã«éä¿¡ãããšããã®çµæããã®ããã«ãŒã¯ããã±ãŒãžå
ã®äŸåé¢ä¿ãåéããŸãã ããã±ãŒãžå
šäœã§ã¯ãªãäžéšã®ã¿ãåŠçãããããããã¯é«éã«ãªããŸãã
ãã®ã¢ãããŒãã«ã¯å€§ããªå©ç¹ããããŸããäŸåé¢ä¿ãåå¥ã«ã€ã³ã¹ããŒã«ããŠãã£ãã·ã¥ã§ããŸãã ãŸãã¯ãåã«ã¯ã©ã€ã¢ã³ãäžã®äŸåé¢ä¿ãã¡ã€ã«ãããŒãžããŸãã ã€ãŸããæ¢åã®äŸåé¢ä¿ã®äžã«æ°ããäŸåé¢ä¿ãèŠæ±ããå Žåãæ°ããäŸåé¢ä¿ã®ãã¡ã€ã«ãåéããã ãã§æžã¿ãŸãïŒ ããã«ããã1ã€ã®äŸåé¢ä¿ã®ã¿ãã€ã³ã¹ããŒã«ãããããAWS Lambdaã®500 MBã®åé¡ã解決ããŸãã WebPackã¯ãé¢é£ãããã¡ã€ã«ã®èšç®ãšéä¿¡ãå®å
šã«æ
åœããããã«ãªã£ããããWebPackãããã«ãŒããé€å€ã§ããŸãã

äŸåããã±ãŒãžã³ã°ã®äžŠåå
泚ïŒããã«ãŒãããããããŠãunpkg.comããåãã¡ã€ã«ãåçã«èŠæ±ã§ããŸãã ããããããã¯ç§ã®ã¢ãããŒããããéãã§ãããã ãããããªãã©ã€ã³ã®ãµããŒããæäŸãããã®ã§ãä»ã®ãšããïŒå°ãªããšãç·šéè
ã®ããã«ïŒããã«ãŒãèŸããããšã«ããŸããã ããã¯ãå¯èœãªãã¹ãŠã®é¢é£ãã¡ã€ã«ãããå Žåã«ã®ã¿å¯èœã§ãã
å®éã«åã
äŸåé¢ä¿ã®çµã¿åãããèŠæ±ããå ŽåããŸãS3ã«æ¢ã«æ ŒçŽãããŠãããã©ããã確èªããŸãã ããã§ãªãå ŽåãAPIãµãŒãã¹ã«çµã¿åãããèŠæ±ããäŸåé¢ä¿ããšã«ãã¹ãŠã®ããã«ãŒãåå¥ã«èŠæ±ããŸãã å¿çã§200 OKãååŸããå ŽåãS3ãååºŠèŠæ±ããŸãã
ããã«ãŒã¯Yarnã䜿çšããŠäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããå
¥åãã€ã³ãã®ãã£ã¬ã¯ããªå
ã®ãã¹ãŠã®ãã¡ã€ã«ã®ASTããã€ãã¹ããŠããã¹ãŠã®é¢é£ãã¡ã€ã«ãèŠã€ããŸãã requireåŒãæ€çŽ¢ãããã¡ã€ã«ã®ãªã¹ãã«è¿œå ããŸãã ããã¯ååž°çã«è¡ãããçµæãšããŠäŸåã°ã©ããåŸãããŸãã ãµã³ãã«åºåïŒ react@latest
ïŒïŒ
{ "aliases": { "asap": "asap/browser-asap.js", "asap/asap": "asap/browser-asap.js", "asap/asap.js": "asap/browser-asap.js", "asap/raw": "asap/browser-raw.js", "asap/raw.js": "asap/browser-raw.js", "asap/test/domain.js": "asap/test/browser-domain.js", "core-js": "core-js/index.js", "encoding": "encoding/lib/encoding.js", "fbjs": "fbjs/index.js", "iconv-lite": "iconv-lite/lib/index.js", "iconv-lite/extend-node": false, "iconv-lite/streams": false, "is-stream": "is-stream/index.js", "isomorphic-fetch": "isomorphic-fetch/fetch-npm-browserify.js", "js-tokens": "js-tokens/index.js", "loose-envify": "loose-envify/index.js", "node-fetch": "node-fetch/index.js", "object-assign": "object-assign/index.js", "promise": "promise/index.js", "prop-types": "prop-types/index.js", "react": "react/index.js", "setimmediate": "setimmediate/setImmediate.js", "ua-parser-js": "ua-parser-js/src/ua-parser.js", "whatwg-fetch": "whatwg-fetch/fetch.js" }, "contents": { "react/index.js": { "requires": [ "./cjs/react.development.js" ], "content": "/* code */" }, "object-assign/index.js": { "requires": [], "content": "/* code */" }, "fbjs/lib/emptyObject.js": { "requires": [], "content": "/* code */" }, "fbjs/lib/invariant.js": { "requires": [], "content": "/* code */" }, "fbjs/lib/emptyFunction.js": { "requires": [], "content": "/* code */" }, "react/cjs/react.development.js": { "requires": [ "object-assign", "fbjs/lib/warning", "fbjs/lib/emptyObject", "fbjs/lib/invariant", "fbjs/lib/emptyFunction", "prop-types/checkPropTypes" ], "content": "/* code */" }, "fbjs/lib/warning.js": { "requires": [ "./emptyFunction" ], "content": "/* code */" }, "prop-types/checkPropTypes.js": { "requires": [ "fbjs/lib/invariant", "fbjs/lib/warning", "./lib/ReactPropTypesSecret" ], "content": "/* code */" }, "prop-types/lib/ReactPropTypesSecret.js": { "requires": [], "content": "/* code */" }, "react/package.json": { "requires": [], "content": "/* code */" } }, "dependency": { "name": "react", "version": "16.0.0" }, "dependencyDependencies": { "asap": "2.0.6", "core-js": "1.2.7", "encoding": "0.1.12", "fbjs": "0.8.16", "iconv-lite": "0.4.19", "is-stream": "1.1.0", "isomorphic-fetch": "2.2.1", "js-tokens": "3.0.2", "loose-envify": "1.3.1", "node-fetch": "1.7.3", "object-assign": "4.1.1", "promise": "7.3.1", "prop-types": "15.6.0", "setimmediate": "1.0.5", "ua-parser-js": "0.7.14", "whatwg-fetch": "2.0.3" } }
ã¡ãªãã
ä¿åäž
10æ5æ¥ã«æ°ããããã«ãŒãç«ã¡äžããŠã2æ¥éããšãã§ããªã0.02ãã«ãæ¯æããŸããïŒ ãããŠãããã¯ãã£ãã·ã¥ãäœæããããã§ãã æé¡100ãã«ã«æ¯ã¹ãŠå€§å¹
ãªç¯çŽã
ããé«ãæ§èœ
äŸåé¢ä¿ã®æ°ããçµã¿åããã3ç§ã§ååŸã§ããŸãã ä»»æã®çµã¿åããã å€ãã·ã¹ãã ã§ã¯ãæã
1åããããŸããã çµã¿åããããã£ãã·ã¥ãããŠããå Žåãã¯ã€ãã¯æ¥ç¶ã§50ããªç§åŸã«åä¿¡ããŸãã äžçäžã®Amazon Cloudfrontã䜿çšããŠãã£ãã·ã¥ããŸãã ãŸããé¢é£ããJSãã¡ã€ã«ã®ã¿ãè§£æããŠå®è¡ããããããµã³ãããã¯ã¹ãé«éã«åäœããŸãã
ããæè»æ§
ããã«ãŒã¯äŸåé¢ä¿ãããŒã«ã«ãã¡ã€ã«ã®ããã«åŠçããããã«ãªããŸããã ããã¯ããšã©ãŒã¹ã¿ãã¯ãã¬ãŒã¹ãããã¯ãªãŒã³ã«ãªã£ãããšãæå³ããŸããäŸåé¢ä¿ïŒ.scssã.vueãªã©ïŒããä»»æã®ãã¡ã€ã«ãå«ããããšãã§ãããšã€ãªã¢ã¹ãç°¡åã«ãµããŒãã§ããŸãã äŸåé¢ä¿ãããŒã«ã«ã«ã€ã³ã¹ããŒã«ãããŠãããã®ããã«åäœããŸãã
çºå£²æ¥
ãã£ãã·ã¥ãæ§ç¯ããããã«ãå€ãããã«ãŒã®æšªã«ããæ°ããããã«ãŒã䜿çšãå§ããŸããã 2æ¥éã§ã2000ã®ç°ãªãçµã¿åãããš1400ã®ç°ãªãäŸåé¢ä¿ããã£ãã·ã¥ãããŸããã å®å
šã«åãæ¿ããåã«ãæ°ããããŒãžã§ã³ãéäžçã«ãã¹ãããããšæããŸãã èšå®ã§ãªã³ã«ããŠã¿ãŠãã ããã

ãœãŒã¹ã³ãŒã ã ããã¯ãŸã é
åçã§ã¯ãããŸãããç§ã¯ããã«ããããããã«ããREADME.mdãªã©ãæžããŸã
ãµãŒããŒã¬ã¹ã䜿çšããŠãã ããïŒ
ãã®ãã¯ãããžãŒã«ã¯éåžžã«æéãåããŸããããµãŒããŒã®ã¹ã±ãŒãªã³ã°ãšç®¡çãéåžžã«ç°¡åã«ãªããŸãã ãã€ãç§ãé»ãã å¯äžã®ããšã¯éåžžã«è€éãªã»ããã¢ããã§ãããã serverless.comã®éçºè
ã¯ããã倧å¹
ã«ç°¡çŽ åããŸããã 圌ãã®ä»äºã«ãšãŠãæè¬ããŠããŸãããµãŒããŒã¬ã¹ã¯å€ãã®åœ¢æ
ã®ã¢ããªã±ãŒã·ã§ã³ã®æªæ¥ã ãšæããŸãã
æªæ¥
ããã§ãã·ã¹ãã ã倧å¹
ã«æ¹åã§ããŸãã åã蟌ã¿ãšãªãã©ã€ã³æ°žç¶æ§ã«å¿
èŠãªåçã¯ãšãªã調ã¹ãããšæããŸãã ãã©ã³ã¹ãç¶æããããšã¯å°é£ã§ãããå¯èœã§ããã¹ãã§ãã ãã©ãŠã¶ã§äœãã§ãããã«ãã£ãŠãäŸåé¢ä¿ã®ãã£ãã·ã¥ãåå¥ã«éå§ã§ããŸãã ãã®å ŽåãäŸåé¢ä¿ã®ç°ãªãçµã¿åããã§æ°ãããµã³ãããã¯ã¹ã«ã¢ã¯ã»ã¹ãããšãã«ãæ°ããäŸåé¢ä¿ãããŠã³ããŒãããå¿
èŠãããªãå ŽåããããŸãã ãŸããäŸåé¢ä¿ã®è§£æ±ºããããã調æ»ããããšæããŸãã æ°ããã·ã¹ãã ã§ããŒãžã§ã³ã®ç«¶åãçºçããå¯èœæ§ããããŸãããå€ãããŒãžã§ã³ãç Žæ£ããåã«é€å€ããããšæããŸãã
ãããã«ãããç§ã¯çµæã«éåžžã«æºè¶³ããŠãããCodeSandboxã®é©æ°ã«åãçµãã€ããã§ãïŒ