vm2
์ require
๋ฅผ ์ธ์๋ก ์ฌ์ฉํ๊ณ vm2
์ require
๋์ ์ฌ์ฉํด์ผ ํ๋ ์ ํจ์๋ฅผ ๋ฐํํ๋ ํจ์์ธ ์ต์
์ ์ํฉ๋๋ค.
๋ค์ ๊ด๋ จ์ฑ: ์ฌ์ฉ์๊ฐ ์ ์ถํ ์ฝ๋์ ๋ํด ์ฌ์ฉ์ ์ง์ ํ์ผ ์์คํ
์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. 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๋ฅผ ์ถ๊ฐ๋ก ๋ณ๊ฒฝํ์ต๋๋ค. ๊ทธ๊ฒ๋ค๋ ๋ณด๊ณ ์ถ์ผ์๋ฉด ์ ์๊ฒ ์๋ ค์ฃผ์ธ์.
์ด ๋ฌธ์ ๋ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ค๋๋ ๊ฒ์ผ๋ก ํ์๋์์ต๋๋ค. ๋ ์ด์ ํ๋์ด ์์ผ๋ฉด ํ์๋ฉ๋๋ค. ๊ทํ์ ๊ธฐ์ฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ค์ ๊ด๋ จ์ฑ: ์ฌ์ฉ์๊ฐ ์ ์ถํ ์ฝ๋์ ๋ํด ์ฌ์ฉ์ ์ง์ ํ์ผ ์์คํ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
require('./otherUserSubmittedFile')
์ ๊ฐ์ ๋ก์ปฌ ์๊ตฌ ์ฌํญ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ฌ์ฉ์ ์ง์ ํ์ผ ์์คํ ์์ ํ์ผ์ ๊ฐ์ ธ์์vm2
ํ์ฌ ์๋๋ฐ์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๊น?์ ๋ฐ์ดํธ :
๋งค์ฐ ๊ฑฐ์น ์ง๋ง ์ฌ์ฉ์ ์ ์/๊ฐ์ ํ์ผ ๋ผ์ธ์ ๋ฐ๋ผ ๋ฌด์ธ๊ฐ๋ฅผ ๊ตฌํํ์ต๋๋ค: https://github.com/bartjoyce/vm2-with-custom-fs
์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.