рдореБрдЭреЗ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ 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 рдореБрдЭреЗ рд╡рд╣реА рдЪреАрдЬрд╝ рдЪрд╛рд╣рд┐рдП! рдЖрдкрдХрд╛ рд▓рд┐рдВрдХ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рдХрд╣реАрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ?
@callumlocke рдореИрдВ рддрдм рд╕реЗ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЬреЛ рдХреЛрдб рд▓рд┐рдЦрд╛ рд╣реИ рд╡рд╣ рдпрд╣рд╛рдБ рд╣реИ: 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
рдЙрдкрдпреЛрдЧ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛: