写点什么

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

  • 2021-02-21
  • 本文字数:1171 字

    阅读完需:约 4 分钟

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-02-21 17:022902

评论

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

28天面试突击:JVM+Redis

爱好编程进阶

程序员 后端开发

3年CRUD程序员3个月啃完这份524页PDF成功涨9k!

爱好编程进阶

Java 程序员 后端开发

Git进阶系列 | 3. 基于Pull Request实现更好的协作

俞凡

git 最佳实践

开源字节系统白皮书

源字节1号

软件开发

《数据中心白皮书 2022》揭秘“东数西算”下数据中心高性能计算的六大趋势八大技术

GPU算力

使用MyBatis-Plus代码生成器(数据库MySQL/Sqlite

芝士味的椒盐

Java mybatis 5月月更

2021-3-20 【推箱子】

爱好编程进阶

Java 程序员 后端开发

2021-3-29 【PTA】

爱好编程进阶

Java 程序员 后端开发

2021年学习Java还有意义吗?

爱好编程进阶

Java 程序员 后端开发

30道经典的Java基础面试题集锦

爱好编程进阶

程序员 后端开发

都2022了,不会还有人不会idea注释相关的配置吧,速进本文

芝士味的椒盐

Java IDEA 5月月更

2020字节跳动秋招技术面试题:Kafka+反射

爱好编程进阶

Java 程序员 后端开发

2021-03-26【PTA】

爱好编程进阶

程序员 后端开发

2021-11-27【算法竞赛入门到进阶】

爱好编程进阶

程序员 后端开发

用户体验思维 7 大陷阱

龙国富

产品设计 UI UX 用户体验 产品设计与思考

130道BATJM真题及解析:集合+Spring

爱好编程进阶

Java 程序员 后端开发

30分钟掌握沧湖一体化:flink+hudi

爱好编程进阶

程序员 后端开发

毕业设计-设计电商秒杀系统

默光

秒杀架构设计 架构训练营5期

不造芯,不配做互联网巨头

IC男奋斗史

芯片行业思考

13W字!银四巨作:Java进阶架构师核心手册

爱好编程进阶

Java 程序员 后端开发

7-1 银行家算法--安全性检查 (20 分)(思路+详解+知识分析)宝 你今天 AC了吗

爱好编程进阶

Java 程序员 后端开发

[Day34]-[二叉树]有序链表转换二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

超级原始人系列盲盒即将上线,PlatoFarm赋能超多权益

西柚子

Git进阶系列 | 4. 合并冲突

俞凡

git 最佳实践

Git进阶系列 | 5. Rebase vs Merge

俞凡

git 最佳实践

互联网跨界造芯的“菊与刀”

IC男奋斗史

芯片 芯片行业思考

Git进阶系列 | 6. 交互式Rebase

俞凡

git 最佳实践

【愚公系列】2022 年 05 月 二十三种设计模式(三)-建造者模式(Builder Pattern)

愚公搬代码

5月月更

如何登录到你的 WordPress 管理仪表板

海拥(haiyong.site)

5月月更

1篇文章全面总结2020年Java面试知识,掌握这些你也能进大厂!

爱好编程进阶

程序员 后端开发

2021秋招运维工程师岗位常考的知识点

爱好编程进阶

Java 程序员 后端开发

Deno现能够编译为独立的自包含二进制文件_大前端_Bruno Couriol_InfoQ精选文章