让Vite跑在浏览器中,前端又更进了一波
The following article is from 前端巅峰 Author PeterTan
背景
stackblitz
频繁出现在React
和webpack
官方文档推荐
之前我写过两篇文章介绍什么是stackblitz
,其实本质上是属于webContainer
技术,如果你没有看过之前的文章,建议你先去看看,再接着看下面的内容会更好
最近的更新
在关注stackblitz
推特时候发现有一个小更新,
叫做:vite-plugin-terminal
github地址:https://github.com/patak-dev/vite-plugin-terminal
vite的一个终端插件,使之可以运行在浏览器中。体验地址是:https://stackblitz.com/edit/vite-terminal-plugin?file=main.js
赞助商里面也是包括了:尤大
目前官方声明遇到的限制,一时半会还不好解决。
主要有以下几个:
与许多新技术一样,可能存在固有的技术限制。随着时间的推移,这些限制会随着浏览器变得更强大而得到解决和消除,但有些东西可能永远不会得到支持。
Node.js 运行时
我们计划在未来为 WebContainer 带来对其他语言的支持,但目前唯一支持的运行时是 Node.js。 本机二进制文件和 NPMpostinstall脚本
虽然许多postinstall脚本运行起来是无害的,但大多数都用于设置/编译本机二进制文件,并且通常可以在特权根上下文中运行,从而在系统范围内访问任意代码。NPM 已知此漏洞,但没有计划修复该行为,并且违背了 Web 的默认安全特性。 HTTP 网络
我们受限于浏览器发出网络请求的能力,因此目前无法连接到 MongoDB、Redis、PostgreSQL 等进程。这可能会随着Chromium 计划在未来发布 Native Sockets而改变。目前,我们仅限于 HTTP 连接,但我们能够支持在 HTTP 上运行的其他协议,例如 WebSockets。必须使用 CORS 或 CORS 代理允许对外部服务的 HTTP 请求。
看法
这个技术颠覆了以前的本地开发模式,但是存在的问题也不少,另外目前还有一些是beta版本,如果是用来快速做演示demo,那么他是我的首选,不过真的要用在大型商业项目里面时候,就要考虑跟Devops系统的集成,我想在他完全成熟开源后,生态才会大放异彩吧。