Ich hätte gerne eine Option, die eine Funktion ist, die vm2
require
als Argument verwendet und eine neue Funktion zurückgibt, die anstelle von vm2
s require
.
Etwas relevant: Ich verwende ein benutzerdefiniertes Dateisystem für vom Benutzer eingereichten Code. Gibt es eine Möglichkeit, lokale Anforderungen wie require('./otherUserSubmittedFile')
manuell zu bearbeiten, die Datei aus dem benutzerdefinierten Dateisystem abzurufen und an vm2
an die Sandbox weiterzugeben?
Aktualisieren :
Sehr grob, aber etwas in der Art von benutzerdefinierten/virtuellen Dateien implementiert: https://github.com/bartjoyce/vm2-with-custom-fs
Verwendung, wäre ungefähr so:
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 Ich brauche das gleiche! Dein Link ist kaputt, hast du ihn irgendwo verschoben?
@callumlocke Ich bin seitdem zu anderen Projekten https://github.com/bartjoyce/vm2/
Es liegt 30 Commits zurück, aber zumindest können Sie die Änderungen sehen, die ich vorgenommen habe.
Wichtiger Commit ist dieser: https://github.com/bartjoyce/vm2/commit/302e910610c0e1f1ef7a1d15a19a02828715f630
Ich habe zusätzliche Änderungen an vm2 vorgenommen, die nicht in meinem Repository enthalten sind. Wenn Sie die auch sehen möchten, lassen Sie es mich wissen.
Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.
Hilfreichster Kommentar
Etwas relevant: Ich verwende ein benutzerdefiniertes Dateisystem für vom Benutzer eingereichten Code. Gibt es eine Möglichkeit, lokale Anforderungen wie
require('./otherUserSubmittedFile')
manuell zu bearbeiten, die Datei aus dem benutzerdefinierten Dateisystem abzurufen und anvm2
an die Sandbox weiterzugeben?Aktualisieren :
Sehr grob, aber etwas in der Art von benutzerdefinierten/virtuellen Dateien implementiert: https://github.com/bartjoyce/vm2-with-custom-fs
Verwendung, wäre ungefähr so: