『Build a Typesafe API with tRPC and Deno』
『Deno 2.1: Wasm Imports and other enhancements』
Val Town
「Deno 2 is backwards compatible with Node and npm」
Deno 2
『Build an Astro site with Deno』
『Deno 2.0リリース ―大規模プロダクトにも対応可能なJavaScript環境へ | gihyo.jp』
『Jupyter Kernel for Deno』
AWS Lambdaのカスタムランタイムでdenoを動かすとコールドスタートでも10msで立ち上がる
あれ
bun使ってみたけど、Cache APIがないので、諸々不都合が出てきた。
Denoの方はCache APIがあるようなので、Denoに乗り換える。
https://deno.land/[email protected]?s=Cache
あれ
あれ
いや、Expressサーバー無理だったが。Deno 1.28.3ではExpressは動かない機能がある。
Deno 1.28におけるnpmの互換性はまだ完璧ではなく、いくつかのエッジケースによって非互換のnpmモジュールもある
Expressはエッジケースとは言い難くないか……?
まだDenoでnpmを使っていくのは難しいという印象。
『時代はDeno、node_modulesとおさらばだ、Denoでexpressサーバーを立ち上げる』
あれ
あれ
ブログのシステムをdenoに移行してみる。node modulesがなくせるらしいので。
Windowsにdenoをインストールした
denoでpostgresql serverに接続できん
import pg from 'npm:pg';
して、deno run --allow-net --allow-read
で実行したら行けたわ
new JSDOM('<html></html>');
で以下のエラーになってしまう
error: Uncaught Error: Not implemented: isContext
import { DOMParser, Element } from "https://deno.land/x/deno_dom/deno-dom-wasm.ts";
で行けたわ
const doc = new DOMParser().parseFromString(
`<a href="https://example.com">link</a>`,
"text/html",
);
console.log(doc.querySelector("a").href);
console.log(doc.querySelector("a").textContent);
undefined
link
え~~~~~~~~~~~~~
const doc = new DOMParser().parseFromString(
`<a href="https://example.com">link</a>`,
"text/html",
);
console.log(doc.querySelector("a").href);
console.log(doc.querySelector("a").getAttribute("href"));
console.log(doc.querySelector("a").textContent);
undefined
https://example.com
link
解決したけどやや不本意
ガチャガチャ触ってたらnode.jsで動かしてたクローラーがdenoで動くようになりました🎉
サーバーの方でもクローラーがdenoで動くようになりました🎉
node.jsを動かすpm2っていうのがあるんだけど、pm2を使ってdenoも動かすことができた
ecosystem.config.cjs(dlt_crawler.jsをPM2を通してdenoで動かす)
module.exports = {
apps: [
{
name: "dlt_crawler",
script: "./dlt_crawler.js",
interpreter: "deno",
interpreterArgs: "run --allow-net --allow-read --allow-env",
},
],
};
2022年12月3日日記
丸一日、iSH ShellにDenoをインストールするためのビルドに費やした。結果的にうまくいかなかった。そのうちリベンジしたい。
一旦、iPadでウェブアプリ開発するのは諦めかも。
AWS Cloud9も試したが、あまり使い心地が良くなかった。『iPadだけでCloud9開発環境を構築してみた話』に詳しい辛みが載っている。
『t_wの輪郭』をNode.jsからDenoに乗せ換える作業を始めた。手始めに、dlt_crawler.jsをDenoで動くようにした。
サーバーサイドでdenoをどうやって動かすかだがPM2でDenoを使えるらしいので、そのようにした。
iSH ShellにDenoをインストール
未成功
Deno v1.28.3をi686-unknown-linux-gnuをターゲットとしてビルドすると途中でエラーが生じる
Linux(WSL)でDenoをビルド
sudo apt install build-essential python3 python-is-python3 musl-tools pkg-config libglib2.0-dev ninja-build gcc-multilib -y
curl https://sh.rustup.rs -sSf | sh
cargo --version
rustc --version
rustup default stable
rustup target add wasm32-unknown-unknown
rustup target add wasm32-wasi
rustup target add i686-unknown-linux-gnu
V8_FROM_SOURCE=1 cargo build -vv --target i686-unknown-linux-gnu --release
iSH ShellでDenoをソースコードからビルドしてインストール
未成功
RustとCargoをインストール
apk add rust cargo
ソースコードをgithubのreleaseからダウンロード
wget https://github.com/denoland/deno/releases/download/v1.28.3/deno_src.tar.gz
解凍
tar -xf deno_src.tar.gz
失敗録
cargoでDenoをビルドしてインストール
cargo install deno --locked
→ Illegal instruction
と出て停止する