codesandbox是如何在浏览器中运行npm模块
目前,跑在浏览器端的web IDE产品越来越多,按照他们的功能特性来做划分的话,目前的web IDE可以分为两种,一种是将本地IDE的功能基本原封不动的迁移到了web端的IDE,像是目前最流行的前端IDE VS Code,借助于云+容器化的能力,在浏览器端VS Code拥有着跟本地IDE几乎完全一样的功能;还有一种web IDE则更多的聚焦于 页面开发与实时的代码解析、编译、预览
的呈现,代码打包构建的实现则并不局限于在服务端(如基于Docker容器等)实现,部分的产品实现了 基于浏览器端的代码编译、打包、构建、运行
的功能,而这一切在我们原来的开发体系里是只有基于 本地IDE+Node本地构建、本地服务+浏览器访问预览
才有的能力。此类产品的代表是CodeSandbox,codepen,StackBlitz,JSFiddle等。
也就是说前者只是将代码的编辑放在了web段,其实背后借助了云去做代码的存储,项目的编译打包运行等,这种方式下,我们最后得到的和本地开发并无区别,对我们的区别只是不用特地下个编辑器了。
后者则是将一部分的编译打包功能以及最终的运行放在了浏览器,且由于浏览器的限制,其所能支持的应用大小是有限制的(PS:最近遇到一个问题,看错误应该是代码大小超过了500K,留个坑,留待以后解决,嘿嘿)