9月初,我关注的 Mojo、Bun 相继发布正式版,遗憾的是,均没有对 windows 平台提供直接支持 ,强烈的好奇心驱使,我决定在 WSL(windows subsystem for linux)上搭建相关环境尝尝鲜。
Bun.js
Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager.
简单来说,Bun (包子)就是 JavaScript/TypeScript 开发的全家桶,兼容 Node.js,速度更快。
Mojo 编程语言
比 Python 快 68000 倍!Mojo 正式发布,网友:Python 生态系统最重要的升级来了,看这标题都让人震惊。
在恐怖提速的同时,Mojo 还提供了构建工具、Jupyter 内核,妥妥的全家桶,不过开发者就喜欢这样的。更骚的是,Mojo 文件后缀既支持 .mojo
,还能用 .
,以后能看到这样的目录:
WSL 要求 windows 10/11 版本,如果您的系统不在此范围,将无法进行实践。具体的按照方法参考:如何使用 WSL 在 Windows 上安装 Linux。
# 查看安装的版本
> wsl --version
WSL 版本: 1.2.5.0
内核版本: 5.15.90.1
WSLg 版本: 1.0.51
如果使用
wsl --install
命令进行安装,默认使用的是 Ubuntu,我个人用惯了 CentOS,于是选择手动安装同样基于 RedHat 的 Oracle Linux,方便自定义安装路径。
将下载好的 Appx 文件解压到心仪位置,双击 exe 文件,几分钟就能完成(此时在同目录下会创建存储文件ext4.vhdx
)。之后可以通过wsl
命令直接远程连接到 linux 系统。
# 查看状态
> wsl --status
默认分发: OracleLinux_8_5
默认版本: 2
> wsl -l -v
NAME STATE VERSION
* OracleLinux_8_5 Running 2
让我们看看资源占用:
命令 | 说明 |
---|---|
wsl | 进入当前运行的子系统(如果未运行则自动启动) |
wsl --status | 查看状态 |
wsl --list --online | 列出可用的 linux 发行版 |
wsl --list --verbose | 列出已安装的 linux 发行版 |
wsl --update | 更新 WSL |
wsl --shutdown | 关闭 WSL |
修改/etc/wsl.conf
文件(如不存在则新建),内容如下:
[network]
hostname={主机名}
# 推荐安装方式
curl -fsSL https://bun.sh/install | bash
# 通过 npm 方式安装,官方骚话 the last `npm` command you'll ever need
npm install -g bun
使用curl
安装大概率会因为你没有魔法而失败,哪怕宿主机启用了 github 加速器,在 WSL 下还是无法正常访问下载所需文件。
curl: (6) Could not resolve host: github.com
error: Failed to download bun from "https://github.com/oven-sh/bun/releases/latest/download/bun-linux-x64.zip"
此处提供一个可行方案:
\\wsl.localhost\{子系统}\home\zxm\.bun\bin\bun.zip
install.sh
,删除或注释掉其中的下载代码(大致在 127 行,curl 开头)install.sh
$ sh install.sh
bun was installed successfully to ~/.bun/bin/bun
Added "~/.bun/bin" to $PATH in "~/.bashrc"
To get started, run:
source /home/zxm/.bashrc
bun --help
$ source /home/zxm/.bashrc
$ bun -v
1.0.2
# 立马试试运行 Hello World
$ echo "console.log('hello, Bun.js\!')" > index.js
$ bun index.js
hello, Bun.js!
# 试下打包成可执行文件
$ bun build index.js --compile --outfile hello
[7ms] bundle 1 modules
[76ms] compile hello
# 打包速度非常快,结果文件约 93M(就是把整个 bun 装进去了)
待完善…
这里介绍了如何在 WSL 上使用 Bun.js、Mojo,浅尝辄止,毕竟新技术出来到投入生产,还有好长一段路要走,生态完善起来才行。