首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在浏览器内部运行隔离的Node.js环境?

如何在浏览器内部运行隔离的Node.js环境?
EN

Stack Overflow用户
提问于 2019-08-20 10:53:42
回答 2查看 157关注 0票数 1

我正在尝试使用同构-git在浏览器端执行git clone命令。但由于坚持同源策略,如果没有cors-proxy可以使用,我不能向我们公司的GitLab发起跨域请求。出于安全考虑,我们公司的GitLab团队不愿意更改CORS配置。似乎没有办法从浏览器端克隆代码。同时,同构-git提供了节点版本来克隆代码,不再存在跨源问题。但是我不愿意再利用一个节点服务器来做这件事。可以在浏览器中启动隔离的Node.js环境吗?

在corsProxy中使用同构-git从GitHub克隆代码:

代码语言:javascript
复制
await git.clone({
  dir,
  corsProxy: 'https://cors.isomorphic-git.org',
  url: 'https://github.com/isomorphic-git/isomorphic-git',
  ref: 'master',
  singleBranch: true,
  depth: 10
});
EN

回答 2

Stack Overflow用户

发布于 2019-08-20 11:05:56

在我看来答案是否定的,因为即使你嵌入了一个NodeJS (仿真器?环境?事情?)在API线程内部,当它想要git clone时,它必须调用浏览器的API。那么你仍然在同一个地方: JavaScript仍然受同源策略的约束。

如果你能做到这一点,你应该考虑获得一个错误赏金;听起来像是一个很大的安全缺陷:-)

票数 2
EN

Stack Overflow用户

发布于 2021-01-27 22:43:36

如果你的项目很小,你可以使用免费的cors proxy - https://cors.isomorphic-git.org/在浏览器端克隆一个存储库。

用法:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57566132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档