Electron: requireJS๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋กœ๋“œ ๋ฌธ์ œ

์— ๋งŒ๋“  2014๋…„ 05์›” 26์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: electron/electron

์ €๋Š” ๋ช‡ ๋‹ฌ ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ์™”์œผ๋ฉฐ Atom์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ฑ์„ ํฌํ•จํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” requireJS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์›น ๋ฒ„์ „์ด๋‚˜ node-webkit ๋นŒ๋“œ์—์„œ๋„ ์Šคํฌ๋ฆฝํŠธ ๋กœ๋“œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์ง€๋งŒ Atom์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์€ ์˜ˆ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋งฅ ๋นŒ๋“œ์ž…๋‹ˆ๋‹ค.
https://github.com/cniaulin/loading-issue

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณต์ œํ•˜๊ณ  Atom.app์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ฉ˜ํŠธ๊ฐ€ ์ •์˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  cmd + r์ด ์˜ˆ์ธ ๊ฒฝ์šฐ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹˜์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
cmd + alt + i๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ˜์†”์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํŒŒ์ผ ์œ„์น˜: Atom.app/Contents/Resources/app/

๋ˆ„๊ตฌ๋“ ์ง€ ์†”๋ฃจ์…˜์ด๋‚˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

@cniaulin ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด require.js ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ require ๋ณ€์ˆ˜๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

<script>
  if (window.require) {
    window.nodeRequire = window.require;
    delete window.require;
  }
</script>

require ์˜ Node.js ๋ฒ„์ „์„ ํ˜ธ์ถœํ•˜๋ ค๋Š” ๊ณณ๋งˆ๋‹ค nodeRequire ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š”, ๋‚ด๊ฐ€ requireJ์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒƒ์€ ๊ทธ๋“ค์ด ์ถฉ๋Œํ•˜๋Š” ๋…ธ๋“œ์™€ ์œ ์‚ฌํ•œ require ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. requirejs๋ฅผ ๋Œ€์ฒด ๋ฉ”์†Œ๋“œ๋กœ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค.

๋ชจ๋ฒ” ์‚ฌ๋ก€: npm์„ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ ์ „์šฉ ํŒจํ‚ค์ง€/๋ชจ๋“ˆ์„ ํ”„๋กœ์ ํŠธ node_modules ๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์น˜ํ•˜๋˜ node_modules ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€๋ฅผ ๋ณด๋„๋ก RequireJS๋ฅผ ๊ตฌ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋˜ํ•œ ๋…ธ๋“œ ์ „์šฉ ๋ชจ๋“ˆ์ธ ๋ชจ๋“ˆ์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๋Œ€ ๋ชจ๋“ˆ ID๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋”ฐ๋ผ์„œ require("./node_modules/foo/foo")์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

http://requirejs.org/docs/node.html ์„ ๋” ์ฐพ์•„๋ณด์‹ญ์‹œ์˜ค.

@cniaulin ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด require.js ๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ require ๋ณ€์ˆ˜๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

<script>
  if (window.require) {
    window.nodeRequire = window.require;
    delete window.require;
  }
</script>

require ์˜ Node.js ๋ฒ„์ „์„ ํ˜ธ์ถœํ•˜๋ ค๋Š” ๊ณณ๋งˆ๋‹ค nodeRequire ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

atom-shell์—์„œ requireJS๋ฅผ ์ง€์›ํ•  ๊ณ„ํš์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

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