umijs / dumi

📖 Static Site Generator for component library development
https://d.umijs.org
MIT License
3.61k stars 1.18k forks source link

feat: es module sandbox #2064

Open jeffwcx opened 7 months ago

jeffwcx commented 7 months ago

🤔 这个变动的性质是?/ What is the nature of this change?

🔗 相关 Issue / Related Issue

💡 需求背景和解决方案 / Background or solution

将代码执行沙盒改为iframe sandbox,支持执行es module,支持import map编辑

功能预览:

一. 直接运行esm cdn

https://github.com/umijs/dumi/assets/14073775/8339a2bb-dec3-462c-b3bf-b46ecf0c1187

二. 通过importmap引入依赖

https://github.com/umijs/dumi/assets/14073775/cb0adad2-7978-433d-96bd-0c34af446842

视频中的import map是一个扩展了builtins字段,但其实是不可编辑的,因为这是应用本身提供的

其他说明

相比commonjs沙盒,esm沙盒除了有以上好处,还可以进行一定的权限控制

但由于其兼容性还不够广泛,所以 一旦浏览器不支持importmap,dumi会退回到cjs沙盒

📝 更新日志 / Changelog

Language Changelog
🇺🇸 English use es module sandbox
🇨🇳 Chinese 使用es module沙盒
vercel[bot] commented 7 months ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
dumi ❌ Failed (Inspect) Apr 1, 2024 1:51pm