GMTC全球大前端技术大会(北京站)门票9折特惠截至本周五,点击立减¥480 了解详情
写点什么

Deno 现能够编译为独立的自包含二进制文件

2021 年 2 月 21 日

Deno现能够编译为独立的自包含二进制文件

Deno 1.6 引入了将Deno项目编译成独立的可执行文件的功能,这种文件在Deno 1.7中被进一步缩小(高达 60%)。Deno 现在有一个专门的语言服务器,旨在提升 Deno 开发者在代码编辑器中的体验。Deno 还增加了对 data URL 的支持,使计算机生成的代码能够得以执行。


Deno 1.6 的发布说明对新的编译工具链做出了如下的阐述:


deno compile为 Deno 所做的事情类似于nexepkg为 Node 所做的事情:根据 JavaScript 或 TypeScript 源码创建一个独立的、自包含的二进制文件。这是 Deno issue 跟踪器上被投票最多的一个问题。


将 Deno 应用编译成自包含的二进制文件解决了与 Node 或Nectarjs JavaScript原生编译器相同的使用场景。例如,有些开发人员可能想要为他们的应用程序创建一个闭源的商业方案/演示/试用版本;将他们的应用作为一个单独的文件部署在一系列的平台上,或者为了实现可移植性,在可执行文件中合并其他资产。


发布说明提供了一个使用新编译特性的样例:



Deno 编译器可以将代码编译到任意支持的架构(Windows x64、MacOS x64 和 Linux x64),这与执行编译的计算机所使用的架构无关。这意味着,一台 Linux 机器能够创建适用于 Windows 或 MacOS 的可执行文件。借助--lite选项(Deno 1.7 中可用),所生成的二进制文件能够小 40-60%。deno compile还可以创建内置 CA 证书、自定义 V8 标记、限定的 Deno 权限以及预填充命令行参数的二进制文件。然而,它也有一些限制。Deno 编译器不支持web workers动态导入


Deno 1.6 引入了一个新的lsp子命令,它会启动一个实现了语言服务器协议(Language Server Protocol,LSP)的语言服务器。LSP 定义了代码编辑器或集成开发环境与语言服务器之间的协议,从而能够提供一些便利的特性,比如代码补全、跳至定义处(go-to-definition)或代码 lint。目前,deno lsp实现了代码补全、悬停提示、跳至定义处和跳至引用处等操作。Deno VSCode扩展目前还没有支持deno lsp


Deno 1.7 添加了对data URL的支持。如下的data URL "data:application/typescript;base64,ZXhwb3J0IGNvbnN0IGEgPSAiYSI7CgpleHBvcnQgZW51bSBBIHsKICBBLAogIEIsCiAgQywKfQo="对下文所示的 TypeScript 源码进行了base64编码:


export  const a =  "a";export  enum  A  {  A,  B,  C,}
复制代码


在 data URL 中编码的代码可以通过常规的导入语法进行导入(import * as a from "data:application/typescript;base64,...")。该特性对于执行动态生成的内容特别有用。类似的特性被用来实现Svelte前端框架的交互式训练场。训练场用户在文本域中输入的源码会被预处理、打包、 通过URL对象进行导入、执行并在预览面板中展现。Data URL 也可以用于 web workers 中。


Deno 1.61.7的发布说明详细介绍了该版本的其他小功能。Deno 是一款开源软件,采用 MIT 许可证。我们鼓励通过Deno项目进行贡献,并应遵循Deno贡献指南


原文链接:


Deno Now Compiles to Self-Contained, Standalone Binaries

2021 年 2 月 21 日 17:021774

评论

发布
暂无评论
发现更多内容

接口测试--apipost接口断言详解

测试人生路

接口

翻译:《实用的Python编程》04_02_Inheritance

codists

Python 继承 inheritance

2021金三银四必备:“基础-中级-高级”Java程序员面试复习路线

比伯

Java 编程 程序员 架构 面试

one day

旭陽

搞定计算机网络的常见面试问题

什么是职业

ES_her0

28天写作 3月日更

芯翌科技领跑NIST-FRVT戴口罩人脸识别评测,助力后疫情时代科技创新

朋湖网

LeetCode题解:518. 零钱兑换 II,动态规划,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

半个多月时间4面阿里,已经成功拿下offer,分享一下个人面经

Java架构之路

Java 程序员 架构 面试 编程语言

SRS流媒体服务器源码分析--RTMP消息play

赖猫

音视频 流媒体 SRS 流媒体开发

几千次的重复提交,我用 SpringBoot+Redis 居然扛住了!

Java小咖秀

redis 后端 springboot 幂等

Linux内核 设备树操作常用API

赖猫

Linux Linux内核

深入理解Linux内核 RCU 机制

赖猫

Linux linux编程 Linux内核

Go语言学习笔记:抓取XKCD中文站的漫画

worry

go

雪花算法,到底是个啥?

架构精进之路

算法 七日更 3月日更

山东部署公安新平台!智慧警务情指行一体化系统解决方案

源中瑞-龙先生

redis工作原理(上)

Sakura

28天写作 28天挑战 3月日更 21天挑战

线上MySQL读写分离,出现写完读不到问题如何解决

程序员历小冰

MySQL 读写分离

音视频之opengl渲染图片

赖猫

音视频

全靠这份阿里大佬的“Java进阶面试手册”收获蚂蚁offer

周老师

Java 编程 程序员 架构 面试

Apache Ranger的部署安装

大数据技术指南

大数据 3月日更

程序员成长第二十三篇:员工不符合预期,怎么办?

石云升

程序员成长 28天写作 职场经验 管理经验 3月日更

助力金三银四!一线大厂379道面试真题(Java岗)收录成册,开源分享!

程序员小毕

Java 程序员 架构 面试 分布式

Linux/Centos Epoll 原理解析

赖猫

Linux 高并发 epoll

拼多多五面面经(Java岗),全面涵盖Java基础到高并发级别

Java架构之路

Java 程序员 架构 面试 编程语言

新人报道

shun123456789

话说cas

木子的昼夜

容器 & 服务:K8s 与 Docker 应用集群 (四)

程序员架构进阶

Docker Kubernetes 容器技术 28天写作 3月日更

职场求生攻略答疑篇之 5 —— 我,程序员,非常焦虑

臧萌

职场 成长

十四五,鹏城应作先锋看,山河同襄智能体

脑极体

女神营业!云通信产品运营带你玩转号码隐私保护:网约车、外卖等O2O行业的最佳实践

阿里云Edge Plus

云通信 通信云

Deno现能够编译为独立的自包含二进制文件-InfoQ