Deno 1.28稳定支持NPM组件

Deno团队发布可稳定兼容NPM组件的Deno 1.28,这是一个重要的功能更新,因为这代表Deno开发者将可以使用超过130万个NPM组件,使用熟悉的持久资料模块,像是Prisma、Mongoose和MySQL,甚至是前端框架React、Vue来构建应用程序。

由于Deno是为了解决Node.js技术债,由Node.js之父Ryan Dahl重新创建的JavaScript、TypeScript执行环境,因此社群在两者的兼容性上存在一些意见分歧,但是开发者仍希望可以有一个简单的方法,能够方便地使用NPM组件。

Deno团队认为,现代JavaScript应该使用网页标准API和ES模块构建,因此这个版本也会遵循这个想法,通过URL以标准方式导入模块,Deno将继续朝向与浏览器兼容的方向,开发者之后便可使用Web API,像是Fetch、Request和Response来操作组件。

虽然NPM组件方便使用且易于共享,但是安装和执行相依项目不用经过检查的方式,使Node和NPM容易受到软件供应链攻击,通过域名仿冒、社交工程和各种攻击,当攻击者上传恶意模块,被其他开发者安装到生产应用程序中,就可能危及数百万用户。

Deno默认安全方法不允许不受信任的第三方程式代码,访问用户的整个系统,并且会在相依项目访问系统时,进行限制并且通知用户。

Deno团队正想办法让更多的NPM组件与Deno兼容,有一些组件因为脚本等其他边缘状况,现在仍无法使用,Deno团队想通过改进Node兼容层,使其能与Node的运行方式相同。另外,Deno中有一些子命令,还无法用于NPM组件中,这部分Deno团队也正在解决其中。