Vm2: require() ์ถ”๊ฐ€ ํ™•์žฅ

์— ๋งŒ๋“  2016๋…„ 07์›” 15์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: patriksimek/vm2

vm2 ์˜ require ๋ฅผ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ณ  vm2 ์˜ require ๋Œ€์‹  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒˆ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ธ ์˜ต์…˜์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

feature request stale

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

๋‹ค์†Œ ๊ด€๋ จ์„ฑ: ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์ถœํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. require('./otherUserSubmittedFile') ์™€ ๊ฐ™์€ ๋กœ์ปฌ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ vm2 ํ•˜์—ฌ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ :
๋งค์šฐ ๊ฑฐ์น ์ง€๋งŒ ์‚ฌ์šฉ์ž ์ •์˜/๊ฐ€์ƒ ํŒŒ์ผ ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค: https://github.com/bartjoyce/vm2-with-custom-fs

์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NodeVM.file('/customfs/main.js', {
  require: {
    external: true,
    root: '/customfs/', // restrict local requires to within the custom fs
  },
  customfs: {
    getFileContents: (filename) => /* handle /customfs/ file read */,
    exists: (filename) => /* ... */,
    isDirectory: (filename) => /* ... */
  }
})

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

๋‹ค์†Œ ๊ด€๋ จ์„ฑ: ์‚ฌ์šฉ์ž๊ฐ€ ์ œ์ถœํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. require('./otherUserSubmittedFile') ์™€ ๊ฐ™์€ ๋กœ์ปฌ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž ์ง€์ • ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ์„ ๊ฐ€์ ธ์™€์„œ vm2 ํ•˜์—ฌ ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ :
๋งค์šฐ ๊ฑฐ์น ์ง€๋งŒ ์‚ฌ์šฉ์ž ์ •์˜/๊ฐ€์ƒ ํŒŒ์ผ ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค: https://github.com/bartjoyce/vm2-with-custom-fs

์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NodeVM.file('/customfs/main.js', {
  require: {
    external: true,
    root: '/customfs/', // restrict local requires to within the custom fs
  },
  customfs: {
    getFileContents: (filename) => /* handle /customfs/ file read */,
    exists: (filename) => /* ... */,
    isDirectory: (filename) => /* ... */
  }
})

@bartjoyce ๋‚˜๋„ ๋˜‘๊ฐ™์€ ๊ฒŒ ํ•„์š”ํ•ด! ๋งํฌ๊ฐ€ ๊นจ์กŒ๋Š”๋ฐ ์–ด๋”˜๊ฐ€๋กœ ์˜ฎ๊ธฐ์…จ๋‚˜์š”?

@callumlock ๊ทธ ์ดํ›„๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ•˜์—ฌ ์ฝ”๋“œ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์ค‘๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/bartjoyce/vm2/

์ปค๋ฐ‹์ด 30๊ฐœ ๋‚จ์•˜์ง€๋งŒ ์ตœ์†Œํ•œ ๋‚ด๊ฐ€ ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ์ปค๋ฐ‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/bartjoyce/vm2/commit/302e910610c0e1f1ef7a1d15a19a02828715f630

๋‚ด ์ €์žฅ์†Œ์— ์—†๋Š” vm2๋ฅผ ์ถ”๊ฐ€๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค๋„ ๋ณด๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์ €์—๊ฒŒ ์•Œ๋ ค์ฃผ์„ธ์š”.

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

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