乐趣区

关于deno:Deno-初识

介绍

Deno 是一个 能够保障平安和开发体验的 js/ts 运行时,不同于 Node(c++ 开发的),用 Rust 语言开发,而 Rust 自身也反对 WebAssembly,同时也有 js 内置 V8 引擎以及 tsc 引擎,所以也反对运行 javascript、ts 语言,应用 Rust 的 Tokio 库来实现事件循环
特点

  1. 默认平安的,文件、网络或者环境拜访须要开发者受权
  2. 内嵌 tsc, 能够解析 ts 文件
  3. 通过一个可执行程序 deno 运行代码
  4. 内含依赖查看(deno info) 和 代码格式化工具 (deno fmt)
  5. 有一组曾经 reviewed 的规范模块能够和 deno 一起工作
  6. deno 脚本能够打包成单个的 js 文件

原理

指标是给古代程序员提供一个高效和平安的脚本环境,deno 程序最终作为一个独自可执行文件被散发。它应用浏览器兼容的标准协议 URL 加载模块,加载的这个模块压缩后不能超过 15 MB;deno 承当运行时和包治理的角色
指标

  1. 提供一个可执行程序 deno,所有操作通过这个文件实现,反对跨平台 Mac、Linux、Windows
  2. 提供平安默认值:除非许可,否则脚本不能拜访文件、环境或者网络
  3. 浏览器兼容:齐全应用 js 写的并且没有应用全局 deno namespace(或者测试中的性能)的,应该能够间接当初浏览器里运行,无需任何更改
  4. 提供构建工具,比方单元测试、代码格式化 和 代码问题检测, 为了提供开发者体验
  5. 不会透露 V8 概念给用户
  6. 可能无效的提供 http 服务

和 Node 比对

  1. Deno 不应用 npm, 它应用 urls 和 文件 path 加载模块
  2. 不应用 package.json 解析模块
  3. 所有的异步行为都是返回一个 promise, 不像 node, promise 和 callback 都有
  4. Deno 须要明确许可,能力拜访文件、网络和环境
  5. Deno 总是挂在未捕捉的谬误
  6. 应用 es modules, 不反对 require(), 第三方模块通过 urls 导入,如:
    import * as log from “https://deno.land/std/log/mod.ts”;

其余要害行为

近程代码第一次拉取之后会被缓存,永远不会过期,除非运行代码时应用 –reload tag, 从近程 url 加载的模块或者文件被认为是不可批改和可缓存的
外部构建的工具以及相应命令

  1. 依赖检测:deno info
  2. 代码格式化:deno fmt
  3. 代码打包:deno bundle
  4. 运行时类型信息:deno types
  5. 测试:deno test
  6. 命令行 debugger: –debug
  7. 代码标准检测: deno lint
退出移动版