【Deno】极简入门

news2024/11/16 19:43:12

极简系列

极简入门

简介

Deno是一个 JavaScript/TypeScript 的运行时,默认使用安全环境执行代码,有着卓越的开发体验。

Deno建立在 V8、Rust 和 Tokio 的基础上。

优势

适合不喜欢复杂配置开箱即用的人群(如本人小溪)

  • 安全性高:Deno默认提供一些安全功能,访问文件系统/网络/环境变量时需要明确的权限授权等。
  • 支持TypeScript:Deno内置了TypeScript编译器和运行时,开发者可以直接使用TypeScript进行开发。
  • 依赖管理器:不需要使用类似npm的包管理工具,而是使用ES模块,可以直接引入模块,Deno会自动下载所需的依赖。
  • 单一可执行文件:Deno将所有运行时组件打包到一个二进制文件中,便于安装和部署。

官网

Deno — A modern runtime for JavaScript and TypeScript

安装

官方安装

https://deno.com/manual@v1.34.0/getting_started/installation

dvm(deno版本管理器推荐)

dvm官网

https://deno.land/x/dvm@v1.8.6

安装

官网方式

curl -fsSL https://deno.land/x/dvm/install.sh | sh

这种方式目前有点问题,需要修改~/.bash_profile

//export PATH="$/Users/zhouwei/.dvm/bin:PATH"

// 修改
export PATH="/Users/zhouwei/.dvm/bin:$PATH"

网络安装

curl -o- https://raw.githubusercontent.com/ghosind/dvm/master/install.sh | bash

gitee镜像安装

curl -o- https://gitee.com/ghosind/dvm/raw/master/install.sh | DVM_SOURCE=gitee bash

升级

// 更新dvm
dvm upgrade

// 升级到指定版本
deno upgrade --version 1.1.0

示例

dvm install v1.0.0
dvm uninstall v0.42.0
dvm use v1.0.0
dvm alias default v1.0.0
dvm run v1.0.0 app.ts

安装deno

// 安装最新版deno
dvm install

检查环境

deno --version

// v8 10.9.194.5
// typescript 4.9.4

VSCode插件(代码提示)

在项目中启动插件, 一路yes

入门

命令行cli

  1. info: 查看脚本依赖树 deno info server.ts
  2. bundle: 打包输出文件 deno bundel http.ts http.output.js
  3. fmt: 格式化代码 deno fmt server.ts
  4. compile:编译为可执行程序 deno compile index.ts
  5. install: 安装模块 deno install -f -n wcopy -A index.js

可选参数

  1. –reload: 重新下载依赖 deno --reload``deno -r
  2. –allow-net:允许网络 deno run --allow-net
  3. –allow-read: 允许读权限 deno run --allow-read file.ts
  4. –allow-all: 运行所有权限 deno run --allow-all``deno run -A

-A 标志,与 --allow-all等价

deno run -A xx.ts

远程脚本

deno run https://deno.land/std/examples/welcome.ts

本地脚本

console.log('hello world');

//$ deno run index.js

web api(远程api)

https://deno.land/std@0.189.0

模块

// world.ts
export const world:string = 'world';
// hello.ts
import { world } from './world.ts';
console.log(`Hello ${world}`);

测试框架

import { world } from "./world.ts";

Deno.test("env", ()=> {
  if (world !== 'world') {
    throw Error('wrong!')
  }
})
deno test

发布(Deno Deploy)

Deno Deploy是Deno提供的官方托管的代码仓库,可以快速部署和分享Deno应用程序,可以直接创建项目,也可以托管github项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/634717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《微服务实战》 第三十一章 ShardingSphere - ShardingSphere-JDBC

前言 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的…

Spring-Bean基础

文章目录 什么是 BeanDefinition如何获取BeanDefinition如何将BeanDefinition注册到容器中Bean的初始化操作Bean的销毁操作 什么是 BeanDefinition BeanDefinition 是 Spring Framework 中定义 Bean 的配置元信息接口,包含如下信息: 如何获取BeanDefin…

STL学习笔记

STL学习笔记 Vector void VectorTest() {vector<int> vect;vect.push_back(1);vect.push_back(20);vect.push_back(12);vect.push_back(12);vect.push_back(12);sort(vect.begin(),vect.end());for(vector<int>::iterator itervect.begin();iter!vect.end();iter…

osg利用setNodeMask和Switch隐藏节点用法说明

目录 1. 用法及差异点说明 2.利用NodeMask隐藏节点 2. Switch节点 3. NodeMask和Switch混用 1. 用法及差异点说明 在osg中使Node隐藏方式有两种&#xff0c;一种是设置NodeMask&#xff0c;另外一种是使用osg的Switch类来控制。两者的区别&#xff1a;前者只是看不到&#…

Java实现文件分片上传

文章目录 Java实现文件分片上传为什么要使用分片上传什么是分片上传&#xff1f;前后端代码 Java实现文件分片上传 为什么要使用分片上传 在需要上传文件时&#xff0c;不可避免地会遇到上传文件内容过大&#xff0c;上传时间太长地问题&#xff0c;采用文件分片上传就可以解…

ARM-M架构移植UCOS操作系统

最近准备面试&#xff0c;把本科到现在的一些比赛相关的东西整理一下。那些年在飞思卡尔在K60单片机上的UCOSII移植&#xff08;哎&#xff0c;心酸...&#xff09; 一、首先看下UCOSII的文件结构&#xff1a; 一些核心的文件解释&#xff1a; 【1、头文件】&#xff1a; inclu…

SQL多表查询常用语句总结

一、多表关系 &#xff08;一&#xff09;概述 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系&#xff0c;…

【MySQL】数据库中表的操作

表的操作 一、创建表 --- create table 表名(列名 类型 ...);1.1 创建表的案例 二、查看表2.1 查看选中数据库的所有表 --- show tables;2.2 查看&#xff08;描述&#xff09;表结构 --- desc 表名;2.3 查看建表信息 --- show create table 表名 \G 三、修改表 --- alter3.1 修…

说说我认为的AI和人类的未来

今天闲来无事&#xff0c;花了半天时间部署了一个Stable Diffusion的开源AI生成图片程序&#xff0c;因为电脑配置的原因&#xff0c;找了一个小模型集测试了一下效果&#xff0c;总的来说还是挺震惊的。上图是通过输入&#xff1a;长发美女森林漫步红色裙子 这三个关键词后花了…

useEffect的基础知识和底层机制

useEffect 是 React 中一个重要的 Hook&#xff0c;用来处理组件的副作用操作。它的基础知识包括两个方面&#xff1a;执行时机和参数。 执行时机&#xff1a; useEff ect 的执行时机包括两种情况&#xff1a; 组件挂载时&#xff0c;即第一次渲染之后。组件更新时&#xff…

pandas---Series与DataFrame索引、切片;多层索引、索引的堆叠

1. Series的索引和切片 1.1 Series的索引&#xff1a; 可以使用中括号取单个索引&#xff08;此时返回的是元素类型&#xff09;&#xff0c;或者中括号里一个列表取多个索引&#xff08;此时 返回的仍然是一个Series类型&#xff09;。分为显示索引和隐式索引&#xff1a; …

后台服务接口间大文件的流式发送和读取

文章目录 介绍代码设计代码参考客户端代码服务器端代码测试实例 介绍 使用HTTP协议进行数据流式传输是一种常见的方法。对于大文件数据传输可以使用HTTP的chunked编码或使用多部分响应来实现数据流式传输。 【HTTP的chunked编码】在发送数据的服务中&#xff0c;可以将数据切分…

postman接口测试学习笔记(非常详细)

目录 引言 1. 资源 2.接口测试 3. 接口返回数据和JSON详解 4.接口测试协议 5.企业接口测试的流程和方案 6. 接口测试工具以及Postman介绍 7.Postman之内置的动态参数和应用 8.接口关联 引言 接口测试工具如何选择&#xff1f;在我看来&#xff0c;Postman是一个非常值…

电商--红包活动总结

文章目录 背景表结构设计实现流程流程图流程解析流程优化 背景 这是一个来自于NFT电商项目&#xff0c;这是个营销策略的需求&#xff0c;为了快狠准&#xff0c;短期内刺激消费&#xff0c;拉动销售增加购买量。运营人员可以在平台创建红包&#xff0c;并且设置该红包的发放时…

Android系统视角下对APK的分析(1)- 静态分析APK文件

声明 以Android手机用户角度来看&#xff0c;安装各式各样的APP&#xff0c;基本就是从应用市场上 “搜索->下载->安装” 三连。而对Android系统来说&#xff0c;这就是个大工程了&#xff0c;因为对Android系统来说APK是“外来户”&#xff0c;如何安装它、有限制地支持…

【用户认证】密码加密,用户状态保存,cookie,session,token

相关概念 认证与授权 认证&#xff08;authentication &#xff09;是验证你的身份的过程&#xff0c;而授权&#xff08;authorization&#xff09;是验证你有权访问的过程 用户认证的逻辑 获取用户提交的用户名和密码根据用户名&#xff0c;查询数据库&#xff0c;获得完…

redis知识复习

redis知识复习 redis基础知识redis的认识一. 非关系型数据库 与 传统数据库 的区别二. 安装redis并设置自启动三. 熟悉命令行客户端四.熟悉图形化工具RDM redis的命令与数据结构一. 数据结构介绍二. redis通用命令&#xff08;熟练掌握&#xff09; redis的Java客户端一. Jedis…

文心一言 VS 讯飞星火 VS chatgpt (38)-- 算法导论5.4 2题

二、假设我们将球投入到b个箱子里&#xff0c;直到某个箱子中有两个球。每一次投掷都是独立的并且每个球落入任何箱子的机会均等。请问投球次数期望是多少? 文心一言&#xff1a; 这是一个典型的鸽巢原理&#xff08;Pigeonhole Principle&#xff09;问题。假设每次投球时&…

2023年上半年系统分析师下午真题及答案解析

试题一(25分) (试题一为必答题&#xff0c;试题二~五选答两题) 某软件公司拟开发一套汽车租赁系统&#xff0c;科学、安全和方便的管理租赁公司的各项业务&#xff0c;提高公司效率&#xff0c;提升利用率。注册用户在使用系统进行车辆预约时需执行以下操作&#xff1a;(a)用…