Vm2: Расширение require () дальше

Созданный на 15 июл. 2016  ·  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 Мне нужно то же самое! Ваша ссылка не работает, вы ее куда-то переместили?

@callumlocke С тех пор я перешел к другим проектам и перестал поддерживать код. Код, который я написал, находится здесь: https://github.com/bartjoyce/vm2/

Позади 30 коммитов, но, по крайней мере, вы можете увидеть внесенные мной изменения.

Важный коммит: https://github.com/bartjoyce/vm2/commit/302e910610c0e1f1ef7a1d15a19a02828715f630

Я внес дополнительные изменения в vm2, которых нет в моем репо. Если вы тоже хотите их увидеть, дайте мне знать.

Эта проблема была автоматически помечена как устаревшая, поскольку в последнее время не было активности. Он будет закрыт, если больше не будет активности. Спасибо за ваш вклад.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги