Electron: ๊ธฐ๋Šฅ ์š”์ฒญ: ์•ฑ ์†Œ์Šค ์ฝ”๋“œ ํด๋” ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” API

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

์˜ˆ๋ฅผ ๋“ค์–ด cd myapp/ ๋ฐ electron app.js ํ•˜๋ฉด process.cwd() ์˜ ์ถœ๋ ฅ์€ /Users/maxogden/myapp ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ „์ž ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด ์•ฑ์„ ํŒจํ‚ค์ง• + ์‹คํ–‰ํ•  ๋•Œ ๋‚ด ์•ฑ์ด ์ด์ œ ๋ฆด๋ฆฌ์Šค ํŽ˜์ด์ง€ Electron.app ์˜ ๊ณต์‹ Contents/Resources/app ํด๋” ์•ˆ์— ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค process.cwd() ์€ / ์ž…๋‹ˆ๋‹ค.

Electron์ด process.cwd ๋ฅผ / ์„ค์ •ํ•˜์—ฌ ๋‚ด ์•ฑ์„ ์‹คํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์ด์œ ๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๊ฒƒ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ Atom์˜ ์ฝ˜์†”์—์„œ process.cwd() ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด .app / ๋„ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” ์•ฑ ์†Œ์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ์•ฑ์˜ ๊ธฐ๋ณธ ์‹คํ–‰ ์Šคํฌ๋ฆฝํŠธ์—์„œ __dirname ๊ฐ’์„ ์บก์ฒ˜ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ์ด๊ฒƒ์€ ์ข‹์€ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. API๊ฐ€ ํ˜„์žฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด ๋ชจ๋“ˆ menubar ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ:

var menubar = require('menubar')
var mb = menubar()
mb.on('ready', function ready () {
  console.log('app is ready')
})

๊ทธ๋Ÿฌ๋‚˜ ์•ฑ ์ปจํ…Œ์ด๋„ˆ์— ํŒจํ‚ค์ง•๋œ ๊ฒฝ์šฐ์—๋Š” ๋ฉ”๋‰ด๋ฐ”๊ฐ€ process.cwd() here ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œํ•  ์‚ฌ์šฉ์ž index.html ํŽ˜์ด์ง€๋ฅผ ์ฐพ์ง€๋งŒ process.cwd() ๊ฐ€ / ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. /Users/maxogden/myapp/Example.app/Contents/Resources/app / ๋Œ€์‹  /Users/maxogden/myapp/Example.app/Contents/Resources/app index.html์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ์•ฑ์ด ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋…ธ๋“œ ์•ฑ์—๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. process.cwd()๊ฐ€ ํ•ญ์ƒ ์•ˆ์ •์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” process.cwd()๊ฐ€ / ์„ค์ •๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(Mac OS X ๋ฌธ์ œ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ).

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด menubar๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ __dirname ์ „๋‹ฌํ•˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ์ด์ƒ์ ์ด๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์†”๋ฃจ์…˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

  • process.cwd() ๋ฅผ ์‹ค์ œ ์•ฑ ํด๋”๋กœ ๋ณ€๊ฒฝ
  • app.getPath ์— ์•ฑ ํด๋” ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ƒˆ ์˜ต์…˜ ์ถ”๊ฐ€

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

process.resourcesPath ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

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

process.resourcesPath ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๋ฒˆ์งธ ์˜ต์…˜์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

๋•๋ถ„์— ahhhhhh @paulcbetts์€, ๋‚œ ๋ชฐ๋ž์–ด์š” https://github.com/atom/electron/blob/cd0aa4a956cb7a13cbe0e12029e6156c3e892924/docs/api/process.md#process ๋‚˜๋Š” monkeypatch์— ์ „์ž ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์•˜๋‹ค (-object์ด ์กด์žฌ process )

path.resolve('something') ๊ฐ€ /something ํ•ด๊ฒฐ๋˜๋Š” atom์—์„œ ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด tslint๋ฅผ ๊นจ๋œจ๋ ธ๋‹ค. ์ด๊ฒƒ์€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

init.coffee(Atom > Preferences > Init Script...)๋ฅผ ์—ด๊ณ  ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

process.chdir(atom.project.getPaths()[0])
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰