Deno js运行时环境学习笔记

Deno是基于V8引擎,使用Rust构建的JavaScript & TypeScript 运行时环境,天生支持TypeScript,并且有安全模式(默认情况下无法获取网络,文件系统,环境变量等权限,当然也可以开放),Deno的作者是Nodejs之父Ryan Dahl,构建的原因是解决Nodejs的缺陷,例如模块的安全性(Node运行时的权限很高,缺乏模块的安全运行),Deno的模块化选择了ESMoule标准,而且具备浏览器的api,例如window全局变量,支持onload,onunload等事件函数,支持fetch,Web Workers等标准,异步操作返回采用Promise,支持await Deno不使用node_modules与package.json的包管理机制,而是采用下载编译的机制,并且存在缓存,模块更新通过更新缓存来完成 Deno有个特殊的功能,就是可以从网络上导入模块 安装 Linux curl -fsSL https://deno.land/install.sh | sh 或者 windows iwr https://deno.land/install.ps1 -useb | iex 也可以通过scoop安装 scoop install deno 作为Rust构建的,当然也支持Cargo包管理器安装 cargo install deno –locked 或者通过单一的可执行文件来安装(我采用这个方式,再配置一下Path环境变量就是可以了,windows选择deno-x86_64-pc-windows-msvc) https://github.com/denoland/deno/releases 检查是否安装完成 deno –version 第一个例子 import DFetch from "https://deno.land/x/dfetch/mod.ts" DFetch.get("https://zhizheng123.test.com").then((response) => { console.log(response) }) 运行 deno run .\index.ts 它会向你询问进行网络请求,是否允许,可通过–allow-net默认运行,例如:deno run –allow-net .\index.ts 第三方库通过https://deno.land/x查找 权限 –allow-env,允许访问环境变量,可指定环境变量列表,通过逗号分隔 –allow-hrtime,允许高分辨率时间测量 –allow-net,允许网络访问,可指定网络地址列表,通过逗号分隔 –allow-ffi,允许加载动态库,动态库不是安全运行的 –allow-read,允许读取,可指定读取文件列表或者目录,使用逗号分隔 –allow-run,允许运行子进程,这个子进程不是安全运行的,可指定子进程列表,通过逗号分隔 –allow-write,允许写入,可指定写入文件列表或者目录,使用逗号分隔 -A 或者 –allow-all 允许全部权限 VsCode插件deno deno内置工具 安装模块...

2022-11-11 · 1 min · Me