[[WSL2]]の[[Ubuntu]]環境下で、[[Bun]]で[[zx]]をインストールして動かしてみる。
<div class="link-card">
<div class="link-card-header">
<img src="https://google.github.io/zx/img/favicons/favicon-32x32.png" class="link-card-site-icon"/>
<span class="link-card-site-name">google.github.io</span>
</div>
<div class="link-card-body">
<div class="link-card-content">
<div>
<p class="link-card-title">Getting Started | google/zx</p>
</div>
<div class="link-card-description">
A tool for writing better scripts
</div>
</div>
</div>
<a href="https://google.github.io/zx/getting-started"></a>
</div>
## インストール
```console
bun i zx
```
## [[JavaScript]]を実行
`script.mjs`
```js
const date = await
date`
await
echo Current date is ${date}.`
```
```console
bun zx script.mjs
```
## [[TypeScript]]を実行
以下のエラーにどうしても勝てない。
```error
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /home/tadashi-aikawa/tmp/zx-sandbox/script.ts
at new NodeError (node:internal/errors:405:5)
at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:79:11)
at defaultGetFormat (node:internal/modules/esm/get_format:124:36)
at defaultLoad (node:internal/modules/esm/load:89:20)
at nextLoad (node:internal/modules/esm/loader:163:28)
at ESMLoader.load (node:internal/modules/esm/loader:603:26)
at ESMLoader.moduleProvider (node:internal/modules/esm/loader:457:22)
at new ModuleJob (node:internal/modules/esm/module_job:64:26)
at #createModuleJob (node:internal/modules/esm/loader:480:17)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:434:34) {
code: 'ERR_UNKNOWN_FILE_EXTENSION'
}
error: "zx" exited with code 1 (SIGHUP)
```
どうやら [[bnx]] を使わないといけなそう。