CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

步女叔的韵母都是u吗(难以置信)步女士,Bun v0.5 正式发布,开源平台,

1.步女叔的韵母都是u吗

大家好,我是Echa好消息,2023年1月19日Bun官方正式发布了v0.5版本距离Bun 破壳诞生时间(2022年7月5日),只有短短198天时间,但其Github仓库的 star 数已超过 38.3k,并且在全球拥有超过 39w名用户。

2.步女叔的韵母相同吗

新年Bun 官方团队都在加班加点赶工,完善底层框架Bun 官方团队真厉害,给咱们开发人员带来了很多方便,小编举起大拇指点赞Bun官方网址:HTTPS://bun.sh/Github:https://github.com/oven-sh/bun

3.步的韵母是什么

Bun是一个快速的一体化JavaScript运行时捆绑、传输、安装和运行JavaScript & TypeScript项目—全部在Bun中完成Bun是一个新的JavaScript运行时,内置了本机bundler、transpiler、task runner和npm客户端。

4.步,女,叔这三个字的韵母都是u吗

前端工具链 Bun 项目的关注度颇高Bun 是像 Node 或 Deno 一样的现代 JavaScript 运行时,作者是 Jarred Sumner ,曾在 Stripe 和 Thiel Fellowship 工作。

5.步字的韵母是什么

并且在Best of JS 权威官方正式公布 2022 年 JavaScript 明星项目最受欢迎的榜单排名首位。具体如下图:

Bun 原生实现了数百个 Node.js 和 Web API,包括约 90% 的 Node-API 函数(本机模块)、fs、path、Buffer 等而据其新推出的网站称,“从头开始构建,专注于三个方面”:。

快速开始(它考虑到了优势)新的性能水平(扩展JavaScriptCore,引擎)作为一个伟大而完整的工具(捆绑器、转译器、包管理器)Bun的目标是在浏览器之外运行世界上大多数的JavaScript,为您未来的基础设施带来性能和复杂性的增强,并通过更好、更简单的工具提高开发人员的生产力。

更好的性能表现它在 serve、WebSocket、sqlite三个方面与 Node.js 和 Deno 的性能对比如下图:

Bun.serve

bun:WebSocket

bun:sqlite根据官网测试截图,其 React 的服务器端渲染速度是 Node 或 Deno 的三倍以上,同时,官网也给出了 Bun 性能表现如此好的原因:不同于 Node.js 和 Deno 使用的是 V8 引擎,Bun 使用了 JavaScriptCore 引擎,不同的引擎会产生不同性能;

使用了新兴的系统编程语言 Zig,Bun 的创建者说 Zig 缺少隐藏的控制流使得编写快速软件变得更加简单到目前为止,大多数观察者都认为 Bun 在性能方面值得关注,并且 npm 模块兼容性是一个巨大的优势。

但值得注意的是,Bun 仍处于早期阶段,最近才发布 V0.5, 还有更好的发展空间下面就来看看 Bun v0.5 都有哪些更新:Bun v0.5包含了包括npm在内的新特性workspaces, Bun.dns,并支持node:readline。

改进了与的兼容性node:tls和node:net所以现在几个数据库驱动第一次在Bun工作,包括Postgres.js,MySQL2, node-redis,以及其他Bun也继续变得更快更稳定—Buffer实例化速度提高了10倍,crypto.createHasher()快了50倍,而且bun install得到了几十个错误修复。

# Install Buncurl https://bun.sh/install | bash# Upgrade to latest release of Bunbun upgrade工作区在package.json

Bun现在支持workspaces在package.json,而且很快Bun安装再搅拌在Linux上monorepo大约需要500毫秒比快28倍npm install比快12倍yarn install(v1)。

比快8倍pnpm install

什么是工作区?工作区使开发复杂的软件变得容易单一报告由几个独立的包组成要尝试它,请在workspaces你的领域package.json;通常将这些子包放在一个名为packages.”name”: “my-project”,”version”: “1.0.0”,”workspaces”: [“packages/a”, “packages/b”]。

Bun还不支持工作区名称的globs,但这很快就会实现了!这有几个主要的好处代码可以分成逻辑部分如果一个包依赖于另一个包,您可以简单地用bun addIf包b依赖于a, bun install将符号链接到您的本地packages/a目录放入node_modules的文件夹b,而不是尝试从npm注册表下载它。

可以消除依赖性如果a和b共享一个共同的依赖,它将是升起彻底地node_modules目录这减少了冗余磁盘的使用,并最大限度地减少了与同时安装多个版本的软件包相关的“依赖地狱”问题Bun.dns和node:dns。

Bun现在可以使用内置的Bun.dnsAPI此刻,Bun.dns公开一个函数:lookup.import { dns } from “bun”;const records = await dns.lookup(“example.com”, { family: 4 });console.log(records); // [{ address: “93.184.216.34” }]。

我们还增加了一个最小的Node.js的实现node:dns使用Bun.dns引擎盖下它是由c-ares和非阻塞getaddrinfo在MacOS上import { resolve4 } from “node:dns/promises”;const records = await resolve4(“example.com”);console.log(records); // [ “93.184.216.34” ]。

套接字使用node:tls和node:netBun现在支持使用net.connect()和tls.connect()这将解除几个数据库驱动程序库的阻塞几个有代表性的例子:使用连接到Bun中的Postgres。

Postgres.js经过@porsager:import postgres from “postgres”;const sql = postgres();const [{ version }] = await sql`SELECT version()`;console.log(version); // “PostgreSQL 14.2 …”

连接到Bun中的MySQL,使用mysql2客户通过@sidorares:import { createConnection } from “mysql2/promise”;const connection = await createConnection({host: “localhost”,user: “root”,database: “test”,const [rows] = await connection.execute(“SELECT 1+2 AS count”);console.log(rows); // [{ count: 3 }]

使用官方网站从Bun连接到RedisNode.js客户端:import { createCLIent } from “redis”;const client = createClient();await client.connect();await client.set(“key”, “Hello!”);const value = await client.get(“key”);console.log(value); // “Hello!”

支持node:readline既然Bun支持,构建CLI工具应该容易多了node:readline模块import * as readline from “node:readline/promises”;const rl = readline.createInterface({input: process.stdin,output: process.stdout,terminal: true,const answer = await rl.question(“How fast is Bun from 1 to 10?\n”);if (parseInt(answer) > 10) {console.log(“Good answer!”);。

运行该脚本会产生:$ bun readline.tsHow fast is Bun from 1 to 10?> 11Good answer!习俗headers在WebSocketA 长期存在的上的功能请求WebSocket 投机是在打开WebSocket时设置自定义头的能力。

虽然这还没有成为WebSocket标准,但是Bun现在已经实现了这允许用户自定义用于WebSocket客户握手请求.const ws = new WebSocket(“ws://localhost/chat”, {headers: {Authorization: “…”,},

对的改进bun wiptest在…期间bun wiptest仍在进行中,我们将继续增加Bun与Jest的兼容性test.skip()你可以用test.skip()跳过不想要的测试import { describe, test, expect } from “bun:test”;describe(“fetch()”, () => {test.skip(“can connect to localhost”, async () => {const response = await fetch(“http://localhost”);expect(response.ok).toBe(true);test(“can connect to example.com”, async () => {const response = await fetch(“http://example.com”);expect(response.ok).toBe(true);。

当您跳过一个测试时,它将在测试输出中显示为灰色。

expect(fn).toThrow()你可以用expect(fn).toThrow()捕捉预期的错误import { test, expect } from “bun:test”;test(“catch error”, async () => {expect(() => {throw new Error();}).toThrow();。

describe标签包含在输出中以前,嵌套describe测试运行器输出中不包括标签感谢@ethanburrell,这个问题已经解决了之前:✓ outer > my test之后:✓ outer > inner > my test。

测试文件:import { describe, test } from “bun:test”;describe(“outer”, () => {describe(“inner”, () => {test(“my test”, () => {});

性能提升速度快10倍new Buffer()以前,在BufferBun中的实现使用Object.setPrototypeOf()创建每个新实例。消除了这一瓶颈,实例化小型Buffer发髻里。

速度快50倍crypto.createHash()以前,Bun使用的是crypto.createHash()现在它是使用来自BoringSSL,速度提高了50倍支持HTTPS_PROXYBun现在可以识别HTTPS_PROXY, HTTP_PROXY,以及NO_PROXY发出HTTP请求时的环境变量,包括fetch()和bun install。

这些变量允许您指定一个代理来转发或不转发某些HTTP请求,并且在公司防火墙内运行Bun时非常有用export HTTPS_PROXY=”http://proxy.example.com:8080″export NO_PROXY=”localhost,noproxy.example.com”

如果你想了解更多关于这些变量的知识,GitLab写了一个很好的解释者.模块分辨率变化模块分辨率有两处更改,可能会影响一些包Bun不再检查browser财产在package.json这是因为有些包会禁用Node.js功能,这不是我们想要的Bun功能。

为了更好地兼容Node.js和npm,Bun的JavaScript运行时现在读取”node”package.json中的导出条件exports.订单Bun的JavaScript运行时读取package.json”exports”条件是:

[“bun”, “worker”, “module”, “node”, “browser”, “default”];这意味着如果一个包有一个”node”导出条件,它将被用来代替”default”或者”browser”出口条件。

变更日志虽然我们继续向Bun添加新功能,但我们仍然专注于提高稳定性和修复bug此版本修复了许多问题修复到bun installBun的软件包管理器的几个错误在这个版本中被修复了,主要是由@alexlamsl。

谢谢Alex!

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容