Как запустить изолированную среду Node.js внутри браузера?
Я пытаюсь использовать изоморфный мерзавец для выполнения git clone
команда на стороне браузера. Но из-за того, что я придерживаюсь политики одного и того же происхождения, я не могу отправить запрос к другому источнику в GitLab нашей компании, если я не могу использовать cors-proxy. В целях безопасности команда нашей компании GitLab не желает изменять конфигурацию CORS. Казалось, что нет способа клонировать код со стороны браузера. Между тем, isomorphic-git предоставляет версию узла для клонирования кода, больше нет проблем с перекрестным происхождением. Но я не хочу использовать для этого еще один сервер узлов. Можно ли запустить изолированную среду Node.js внутри браузера?
Использование isomorphic-git для клонирования кода из GitHub с помощью corsProxy:
await git.clone({
dir,
corsProxy: 'https://cors.isomorphic-git.org',
url: 'https://github.com/isomorphic-git/isomorphic-git',
ref: 'master',
singleBranch: true,
depth: 10
});
2 ответа
Мне кажется, что ответ "нет", потому что даже если вы как-то вставили NodeJS (эмулятор? Среда? Вещь?) В поток JavaScript, когда он захотел git clone
, это должно было бы вызвать API браузера. Тогда вы находитесь в том же месте: JavaScript все еще подчиняется политике того же происхождения.
Если вы можете справиться с этим, вы должны изучить возможность получения вознаграждения за ошибки; звучит как большой недостаток безопасности:-)
Если ваш проект небольшой, вы можете использовать бесплатный прокси-сервер cors — https://cors.isomorphic-git.org/ для клонирования репозитория на стороне браузера.
Применение:
git.clone({
fs,
http,
dir,
corsProxy: 'https://cors.isomorphic-git.org',
url: 'https://github.com/example.git',
ref: 'master',
singleBranch: true,
depth: 10
});
Ссылка: https://github.com/isomorphic-git/isomorphic-git#cors-support